nginx试用小记

发布时间:2020-02-27编辑:脚本学堂
由于之前一直在用apache+mysql+php,因此这次没装mysql和那些libmcrypt等库以及php的扩展模块。

由于之前一直在用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.jb200.com jb200.com;

4.如果需要域名泛解析到这个主机,用下划线_来表示
server_name  _