wecoo 发表于 2013-2-7 02:00:09

nginx+php

1. 安装系统组件
yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers libmcrypt libmcrypt-devel pcre-devel

2. 安装数据库
安装cmake\\10.10.70.36\dev\database\MySQL\Linux64\cmake-2.8.3.tar.gz./bootstrapMakeMake install安装mysql\\10.10.70.36\dev\database\MySQL\Linux64\mysql-5.5.15.tar.gzcmake -DCMAKE_INSTALL_PREFIX=/usr/server/mysql -DMYSQL_UNIX_ADDR=/var/run/mysqld/mysqld.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/var/lib/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWIDTH_CLIENT_LDFLAGS=-all-static -DWIDTH_MYSQLD_LDFLAGS=-all-static -DENABLE_THREAD_SAFE_CLIENT=1 -DWIDTH_BIG_TABLES=1makemake install
3. 安装libiconv
\\10.10.70.36\dev\middleware\nginx\libiconv-1.13.1.tar.gz./configuremakemake installln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2
4. 安装完libiconv后对环境进行设置
a)在/etc/ld.so.conf中加入xxx.so所在的目錄
b)一般而言,有很多so档案在/usr/local/lib这个目录下,所以在vim /etc/ld.so.conf中加入/usr/local/lib这一行,可以解決此问题。
c)將 /etc/ld.so.conf存档后,还要执行/sbin/ldconfig -v来更新一下才会生效
d)
注:如果后面PHP make ZEND_EXTRA_LIBS='-liconv' 时还有错误,就对libiconv.so.2原文件进行chmod 700
5. 安装libmcrypt
\\10.10.70.36\dev\middleware\nginx\libmcrypt-2.5.7.tar.gz./configuremakemake install

6. 安装nginx(配置文件的修改例子在\\10.10.70.36\dev\middleware\nginx\配置文件 中有)
./configure --user=daemon --group=daemon --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_moduleMakeMake install

i.修改nginx/conf目录下的nginx.conf文件
userdaemon daemon;#设置CPU核数worker_processes 2;error_log/var/log/nginx/nginx_error.logcrit;pid      /var/run/nginx.pid;#Specifies the value for maximum file descriptors that can be opened by this process.worker_rlimit_nofile 65535;events {    use epoll;    worker_connections 65535;}http {    include       mime.types;    default_typeapplication/octet-stream;    #charsetgb2312;    client_body_temp_path /tmp/nginx_client_body_temp;    fastcgi_temp_path /tmp/nginx_fastcgi_temp;    proxy_temp_path /tmp/nginx_proxy_temp;    scgi_temp_path /tmp/nginx_scgi_temp;    uwsgi_temp_path /tmp/nginx_uwsgi_temp;    server_names_hash_bucket_size 128;    client_header_buffer_size 32k;    large_client_header_buffers 4 32k;    client_max_body_size 60m;    #client_body_buffer_size 20M;    sendfile on;    tcp_nopush   on;    keepalive_timeout 60;    tcp_nodelay on;    fastcgi_connect_timeout 300;    fastcgi_send_timeout 300;    fastcgi_read_timeout 300;    fastcgi_buffer_size 64k;    fastcgi_buffers 4 64k;    fastcgi_busy_buffers_size 128k;    fastcgi_temp_file_write_size 128k;    gzip on;    gzip_min_length1k;    gzip_buffers   4 16k;    gzip_http_version 1.0;    gzip_comp_level 2;    gzip_types       text/plain application/x-javascript text/css application/xml;    gzip_vary on;    #limit_zonecrawler$binary_remote_addr10m;    server {      listen       80 default;      server_namewww.uch.com;      index index.html index.htm index.php;      root/var/www/uch;      #limit_conn   crawler20;      #location ~ .*\.(php|php5)?$ {      location ~ .*\.php$ {            #fastcgi_passunix:/tmp/php-cgi.sock;            fastcgi_pass127.0.0.1:9000;            fastcgi_index index.php;            include fastcgi.conf;      }      #location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$      #{         # expires      30d;      #}      #location ~ .*\.(js|css)?$      #{         # expires      1h;         # expires      1h;      #}      log_format www.uch.com '$remote_addr - $remote_user [$time_local] "$request" '                  '$status $body_bytes_sent "$http_referer" '                  '"$http_user_agent" $http_x_forwarded_for';      access_log/var/log/nginx/www.uch.comwww.uch.com;    }
ii.修改nginx/conf目录下的fastcgi.conf文件
1.在前面加入:
if ($request_filename ~* (.*)\.php) {    set $php_url $1;}if (!-e $php_url.php) {    return 403;}

7. 安装PHP
./configure --prefix=/opt/php --with-config-file-path=/opt/php/conf --with-mysql=/usr/server/mysql --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --with-zlib=shared --enable-soap --with-openssl --enable-hash --enable-json --enable-mbstring --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --enable-gd-native-ttf --with-mhash --enable-xml --enable-xmlreader --enable-xmlwriter --enable-zip --enable-maintainer-zts --enable-inline-optimization --enable-zend-multibyte --enable-ftp --enable-calendar --with-curl --with-mcrypt --with-iconv --enable-sockets --enable-sysvsem --enable-sysvshm --enable-sysvmsg --without-sqlite --without-sqlite3 --without-pdo-sqlitemake ZEND_EXTRA_LIBS='-liconv'make install
8. 对PHP相关文件进行修改
a)cp sapi/fpm/init.d.php-fpm /opt/php
b)chmod 700 /opt/php/init.d.php-fpm
17行 php_fpm_CONF=${prefix}/conf/php-fpm.ini18行 php_fpm_PID=/var/run/php-fpm.pid
c)cp php.ini-production /opt/php/conf/php.ini
对文件中226行左右的short_open_tag = Off 改成short_open_tag = On728行post_max_size = 60M842行cgi.fix_pathinfo=1879行upload_max_filesize = 60M999行插入:extension=mysqli.soextension=mysql.soextension=pdo_mysql.so1000行插入:date.timezone = "Asia/Shanghai"date.default_latitude = 31.5167date.default_longitude = 121.4500
d)cd /opt/php
e)cp etc/php-fpm.conf.default /opt/php/conf/php-fpm.ini
将25行前的;去掉并修改相对应用目录。如:pid = /var/run/php-fpm.pid将30行前的;去掉并修改相对应用目录。如:error_log = /var/log/php/php-fpm.log将35行前的;去掉。如:log_level = notice41行 emergency_restart_threshold = 1049行emergency_restart_interval = 1m55行 process_control_timeout = 5s59行daemonize = yes100行 listen.backlog = -1117行listen.owner = daemonlisten.group = daemonlisten.mode = 0666112行 user = daemon   group = daemon152行 pm.max_children = 128157行 pm.start_servers = 50162行 pm.min_spare_servers = 20167行 pm.max_spare_servers = 80173行 pm.max_requests = 1024230行 request_terminate_timeout = 900s237行 request_slowlog_timeout = 0s242行 slowlog = /var/log/php/$pool.log.slow246行 rlimit_files = 65535251行 rlimit_core = 0274行 catch_workers_output = yes305行 php_flag = off   php_admin_value = /var/log/php/fpm-php.www.logphp_admin_flag = on

9. 创建日志与程序目录
a)Mkdir /var/log/php
b)Mkdir /var/log/nginx
10. 部署完成后对nginx与PHP进行启动
/opt/php/init.d.php-fpm start
/opt/nginx/sbin/   ./nginx
Pkill -9 nginx

注:
1、如果出现configure: error: libjpeg.(a|so) not found.说明系统在/usr/lib/下未找到该文件,可先用locate libjpeg.so查找文件位置,然后使用ln或cp将文件放到/usr/lib下。(一般lib下没有的,在lib64下面能找到)
2、应用部署:
修改/opt/nginx/conf/nginx.conf中的root路径
大概64行左右
root/var/www/ku

修改权限项目文件用户
chown daemon.daemon -R ku/
(chmod 750 ku/

修改数据库连接
/var/www/ku//config.php
/var/www/ku/ucenter/data/config.inc.php
页: [1]
查看完整版本: nginx+php