一,nginx的url重写问题
nano /usr/local/nginx/conf/nginx.conf
//此处旋转url重写的规则
}
重起时,老是报错,又重新看了下配置文件,啥问题也有没有。
还好,看到一个老外的解决方法,下面就给大家说说。
[emerg]: unknown directive "if(!-e" in /usr/local/nginx/conf/nginx.conf:124
二,解决方法
原因是这样的:if和(之间必须有个空格。
我X,这是什么解决方法呢?必须你妹啊,就一个空格,nginx让我搞半天,还好问题解决了。
1、更新
2、安装nginx
Ubuntu安装之后的文件结构大致为:
* 所有的配置文件都在/etc/nginx下,并且每个虚拟主机已经安排在了/etc/nginx/sites-available下
*程序文件在/usr/sbin/nginx * 日志放在了/var/log/nginx中
*并已经在/etc/init.d/下创建了启动脚本nginx
* 默认的虚拟主机的目录设置在了/var/www/nginx-default
启动nginx(请确保80端口未被占用):
#或者
service nginx start
然后打开浏览器,查看http://localhost/ 看看是否看到了”Welcome to nginx!” 如果看到了,说明安装成功.
当然,基本上,这块儿都不会出问题. 如果运行不成功,可以先
杀掉apache进程
3、安装php
4、安装spawn-fcgi
为什么要安装spawn-fcgi呢,它用来控制php-cgi进程,以防止进程崩溃或是单进程的效率太低.
网上很多人都说要使用spawn-fcgi必须得安装lighttpd,实际上不必要,可以直接安装spawn-fcgi
运行:
5、配置
接下来就是最让人头疼的配置.
配置Nginx和spawn-fcgi配合运行
(1).在/etc/nginx/fastcgi_params 文件最后,加入一行,可以用
加入此行:
(2).另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,找到cgi.fix_pathinfo选项,修改为:
这样php-cgi方能正常使用SCRIPT_FILENAME这个变量.
(3).打开/etc/nginx/sites-available/default文件在
listen 80;
server_name localhost;
下面添加web根目录的绝对地址,这里是使用的是nginx的默认地址
即root和server_name同级这段即相当于apache的默认目录
如果没有这个的话,容易在执行php 文件的时候,会提示”No input file specified”.
我就曾在此绕了好大个圈子才发现问题.然后修改
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#includefastcgi_params;
#}
修改成
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
include /etc/nginx/fastcgi_params; #包含fastcgi的参数文件地址
系统环境:rhel4.7、centos5.5
1、所需软件
mysql-5.0.92.tar.gz
libiconv-1.13.tar.gz
libxml2-2.6.31.tar.gz
jpegsrc.v6b.tar.gz
freetype-2.3.5.tar.gz
zlib-1.2.3.tar.gz
libpng-1.2.40.tar.gz
gd-2.0.35.tar.gz
libmcrypt-2.5.7.tar.gz
php-5.2.17.tar.gz
php-5.2.17-fpm-0.5.14.diff.gz
pcre-8.01.tar.gz
nginx-0.9.5.tar.gz
memcache-2.2.5.tgz
eaccelerator-0.9.5.3.tar.bz2
2、安装mysql
cd mysql-5.0.92
./configure --prefix=/usr/local/mysql --localstatedir=/home/var --with-charset=utf8 --with-extra-charsets=all --with-berkeley-db --with-innodb --without-readline --enable-assembler --with-pthread --enable-thread-safe-client --with-client-ldflags=-all-static
make
make install
如何不打算在本机器上运行mysql,可以跳过下面这一步
配置mysql
vi /etc/my.cnf
[client]
character-set-server = utf8
port = 3306
socket = /tmp/mysql.sock
[mysqld]
character-set-server = utf8
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /home/var
log-error = /home/var/mysql_error.log
pid-file =/home/var/mysql.pid
open_files_limit = 10240
back_log = 600
max_connections = 5000
max_connect_errors = 6000
table_cache = 614
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 300
#thread_concurrency = 8
query_cache_size = 512M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 246M
max_heap_table_size = 246M
long_query_time = 3
log-slave-updates
log-bin = /home/var//binlog/binlog
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /home/var/relaylog/relaylog
relay-log-info-file = /home/var/relaylog/relaylog
relay-log = /home/var/relaylog/relaylog
expire_logs_days = 30
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 512M
innodb_data_file_path = ibdata1:256M:autoextend
innodb_file_io_threads = 4
innodb_thread_concurrency = 8
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 16M
innodb_log_file_size = 128M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
innodb_file_per_table = 0
#log-slow-queries = /home/var/slow.log
#long_query_time = 10
[mysqldump]
quick
max_allowed_packet = 32M
初始化数据库及配置启动方法
chown -R mysql:mysql /home/var
/usr/local/mysql/bin/mysqld_safe --user=mysql &
cp ./support-files/mysql.server /etc/rc.d/init.d/mysql mysql.server在安装目录下
chmod +x /etc/rc.d/init.d/mysql
chkconfig --add mysql
service mysql start
/usr/local/mysql/bin/mysqladmin -u root password 57DwNRI3pirdSAP
cd /usr/bin
ln -s /usr/local/mysql/bin/mysql mysql
3、安装libiconv、libxml2、gd等PHP库
tar zxvf libiconv-1.13.tar.gz
cd libiconv-1.13/
./configure --prefix=/usr/local/libiconv/
make
make install
cd ..
tar zxvf libxml2-2.6.31.tar.gz
cd libxml2-2.6.31
./configure --prefix=/usr/local/libxml2
make
make install
cd ..
mkdir -pv /usr/local/jpeg6/{,bin,lib,include,man/man1,man1}
tar vzxf jpegsrc.v6b.tar.gz
cd jpeg-6b
./configure --prefix=/usr/local/jpeg6 --enable-shared --enable-static
make
make install
cd ..
tar zvxf freetype-2.3.5.tar.gz
cd freetype-2.3.5
./configure --prefix=/usr/local/freetype
make
make install
cd ..
tar zvxf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure --prefix=/usr/local/zlib
make
make install
cd ..
tar zxvf libpng-1.2.40.tar.gz
cd libpng-1.2.40
cp scripts/makefile.std makefile
make
make install
cd ..
tar xzvf gd-2.0.35.tar.gz
cd gd-2.0.35
./configure --prefix=/usr/local/gd --with-png=/usr/local/libpng --with-zlib=/usr/local/zlib --with-freetype=/usr/local/freetype --with-jpeg=/usr/local/jpeg6 --with-libxml=/usr/local/libxml2
make (make的时候出报错,没关系,再make一次就可以)
make install
cd ..
tar -zxvf libmcrypt-2.5.7.tar.gz
cd libmcrypt-2.5.7
./configure
make
make install
cd ..
ln -s /usr/local/lib/libmcrypt.la /usr/lib/libmcrypt.la
ln -s /usr/local/lib/libmcrypt.so /usr/lib/libmcrypt.so
ln -s /usr/local/lib/libmcrypt.so.4 /usr/lib/libmcrypt.so.4
ln -s /usr/local/lib/libmcrypt.so.4.4.8 /usr/lib/libmcrypt.so.4.4.8
php常用库安装完成。