环境搭建(ubuntu/php7/nginx/mysql/thinkphp5)
使用的是阿里云的服务器,预装ubuntu。
安装 php7/nginx/mysql
1 |
sudo apt-get install php7 php-mysql nginx mysql-server |
我安装php的时候把apache2也装上了,因为平时用nginx比较多,所以把apache服务停了
1 |
service apache2 stop |
装完以后就开始出各种问题,花了不少时间,现在这里记录下:
1.nginx服务无法启动
检查下是不是启动了apache2占用了nginx的端口导致nginx无法启动或者配置文件错误,如果只装了其中一个的话一般不会出现这个问题。
2.访问提示Access Denied
如果你使用apache2服务,有可能出现这个问题,原因是你的web目录不在apache2默认的目录下。apache2默认web目录在/var/www
apache2配置文件路径:/etc/apache2/sites-enabled/000-default.conf
nginx配置文件路径:/etc/nginx/sites-enabled/default
3.访问php文件返回空白页
这里我用的是nginx,出现空白页多半是因为fastcgi路径没有配对,导致php解析出错。修改nginx配置文件中的 fastcgi_pass参数,填上你自己的路径。
1 |
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; |
4.访问php文件返回No input file specified
这个问题也是因为nginx的配置错误,需要注意的几个参数有:
fastcgi_param SCRIPT_FILENAME
fastcgi_pass
index
root
这里都要根据自己的目录结构做相应调整,另外所有配置文件中的include项都要检查下有没有填写正确路径
这里贴出我的nginx配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
server { listen 80; listen [::]:80; #server_name example.com; # root /var/www/thinkphp/tp5/public; index index.php; location / { index index.htm index.html index.php; #访问路径的文件不存在则重写URL转交给ThinkPHP处理 if (!-e $request_filename) { rewrite ^(.*)$ /index.php?s=/$1 last; break; } } # pass PHP scripts to FastCGI server # location ~ \.php/?.* { ## ~ \.php/?.* | ~ \.php$ include /etc/nginx/fastcgi.conf; set $path_info ὀ~\ὀ~]; set $real_script_name $fastcgi_script_name; if ($fastcgi_script_name ~ ὀ~\^(.+?\.php)(/.+)$ὀ~]) { set $real_script_name $1; set $path_info $2; } fastcgi_param SCRIPT_FILENAME /var/www/phpcrm/tp5/public$real_script_name; fastcgi_param SCRIPT_NAME $real_script_name; fastcgi_param PATH_INFO $path_info; fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_index index.php; include fastcgi_params; } } |
到这里php环境应该就没什么问题了,接下来将thinkphp5传到服务器上。
我放在了/var/www/thinkphp/
那么我的网站根目录就应该设置为 /var/www/thinkphp/tp5/public
重启下nginx
1 |
service nginx restart |
访问 http://xxx/index.php 应该能返回正常结果了。
5.入口文件请求正常,进到方法里返回500错误
这里就要打开php的调试信息和tp5的报错信息来分析是什么原因了。
6.查询数据库报错:could not find driver
需要安装php-mysql
7.上传文件时提示没有权限mkdir() Permission denied
将web目录下的文件所有者设置为www-data,权限设置为777,thinkphp/tp5/runtime也要设置为777,upload文件夹设置为755
目前碰到的坑就这些了。
文章评论 暂无评论
暂无评论