由于服务器数据搬迁,由原来的LAMP空间改为LNMP的VPS。问题遇到挺多。其实LNMP的安装并不复杂,然而问题在于由于选择主机环境,原本默认安装的是Rails版本的服务器,默认安装了Nginx,MySQL。当LAMP环境迁移过去时,会发现一系列问题。服务器往往为了优化某些性能,去掉某些模块,这就不知道默认的Nginx或者MySQL安装了那些模块,只有当程序运行时候才发现问题。
1.502 bad gateway
由于服务器默认没有安装php环境,于是安装了PHP,Apache2
sudo apt-get install php5 libapache2-mod-php5
安装后的默认路径
apache2: /etc/apache2
php:/etc/php5
php.ini /etc/php5/apache2/php.ini
Nginx本身是不能解析php的,需要Apache解析php,Nginx的端口为80,Apache作为转发的端口9000,所以将Apache端口文件(/etc/apache2/ports.conf)改为9000
Listen 9000 <IfModule ssl_module> Listen 443 </IfModule> <IfModule mod_gnutls.c> Listen 443 </IfModule>
然后配置Nginx的default文件(/etc/nginx/sites-enabled/default)
网上搜索一番,发现大部分内容都是这样的
location ~ \.php { include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include /etc/nginx/fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_script_name; access_log off; }
然而发现当域名指向index.php时候能访问,一旦指向其他php文件时,就出现502 bad gateway的错误。网络的很多解决问题都是针对服务器负载量考虑的,在测试的服务器不会出现这个访问量过大的问题,显然是配置的问题。找了了多方法,终于找到了原因。
最后将以上内容改为一下内容,就解决了(php5-fpm不知在那一次的操作中安装了(>_<))。
location ~ \.php { fastcgi_pass unix:/var/run/php5-fpm.sock; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param HTTPS off; }
2.Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
出现这个问题,常规的做法都是让你在php.ini添加一下内容
extension=mysqli.so extension=mysql.so extension=pdo_mysql.so
然而添加了以上内容,这些方法也未能解决问题。
最后是重新安装了php5-mysql解决了。
sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql
Pingback: Apache2 Nginx配置多域名 | YoYong