由于之前一直在用apache+mysql+php,因此这次没装mysql和那些libmcrypt等库以及php的扩展模块。
php的安装配置参数:
./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/mysql --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --enable-discard-path --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fastcgi --enable-fpm --enable-force-cgi-redirect --enable-mbstring --with-gd --enable-gd-native-ttf --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear
只碰到了启动php-cgi进程时:
Starting php_fpm /usr/local/webserver/php/bin/php-cgi: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
failed
在/usr/local/lib下可以找到libiconv.so.2 。
解决:
在/etc/ld.so.conf中加一行/usr/local/lib,运行ldconfig
/usr/local/webserver/php/sbin/php-fpm start
Starting php_fpm done
nginx的配置文件端口改成81,写了个phpinfo,测试成功。
把原有站点移到nginx中,在81端口都测试正常后,停掉apache,改为80端口启动,基本上都正常。
转移配置文件要注意以下几点:
1.Rewrite的写法略有不同:
Apache是RewriteRule ^hx_(.*).html$ /hx.php?id=$1 [L]
有种偷懒的办法就是把前面用双引号引起来
nginx则为rewrite "^hx_(.*).html$" /hx.php?id=$1 last;
不然不加双引号的话总是提示出错:
[emerg]: directive "rewrite" is not terminated by ";" in /usr/local/webserver/nginx/conf/nginx.conf:84
configuration file /usr/local/webserver/nginx/conf/nginx.conf test failed
2.要把用户和用户组改成www。chown -R www:www 网站目录
3.多个域名直接跟在主域名后即可。
如server_name www.jbxue.com jbxue.com;
4.如果需要域名泛解析到这个主机,用下划线_来表示
server_name _
(责任编辑:IT) |