Centos 搭建 PHP Nginx Mysql

  准备工作

//建立开源程序包文件夹 

mkdir software
cd software

 

//开源程序包下载 

wget 
http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz //原来5.5的源不知道怎么就get不了
wget http://www.php.net/get/php-5.4.10.tar.gz/from/this/mirror
wget http://nginx.org/download/nginx-1.5.3.tar.gz
#PHP库文件
wget http://ncu.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
wget http://ncu.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
wget http://ncu.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
#Nginx(pcre)
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.13.tar.gz

 


 

//安装依赖库和开发环境

#依赖库和开发工具
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

#Nginx
yum -y install pcre-devel  zlib-devel

#Php
yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel freetype-devel
 
#Mysql
yum -y install bison gcc gcc-c++ autoconf automake zlib* libxml* ncurses-devel libtool-ltdl-devel* mysql-devel

 //添加用户组


groupadd mysql 
useradd
-r -g mysql -d /data/www mysql
useradd www
-d /data/www -g www-data www

//创建目录

mkdir /usr/local/webserver
mkdir /usr/local/webserver/php
mkdir /usr/local/webserver/mysql
mkdir /usr/local/webserver/nginx
mkdir /data/www
mkdir /data/mysql

   MYSQL

//安装Mysql

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql -DMYSQL_DATADIR=/usr/local/webserver/mysql/mysqldata -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock 
make && make install

 //编辑my.cnf

vi /etc/my.cnf

//my.cnf

/*my.cnf*/


[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
 
[mysqld]
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /data/mysql
log-error = /usr/log/mysql_error.log
pid-file = /data/mysql/mysql.pid
skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
character_set_server=utf8 
character-set-server = utf8
collation-server = utf8_general_ci
 
 
[mysqldump]
quick
max_allowed_packet = 16M
 
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
 
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
 
[mysqlhotcopy]
interactive-timeout
 
#/*end*/

//设置权限

chmod +x /data/mysql
chown -R mysql.mysql /data/mysql

//安装默认数据表( 可以只用--user )

/usr/local/webserver/mysql/scripts/mysql_install_db -–basedir=/usr/local/webserver/mysql –-datadir=/data/mysql –-user=mysql

//更改密码

/usr/local/webserver/mysql/bin/mysqladmin -u root password 123456
#开启mysql
/usr/local/webserver/mysql/support-files/mysql.server 

#设置开机启动
vi /etc/rc.d/rc.local
#加入
/usr/local/webserver/mysql/support-files/mysql.server start

   PHP

//安装php依赖库和开发工具


tar -zxvf libiconv-1.14.tar.gz && cd libiconv-1.14/
./configure --prefix=/usr/local
make && make install && cd ../
tar -zxvf libmcrypt-2.5.8.tar.gz && cd libmcrypt-2.5.8/
./configure &&  make && make install
/sbin/ldconfig && cd libltdl/ && ./configure --enable-ltdl-install
make && make install && cd ../
tar -zxvf mhash-0.9.9.9.tar.gz && cd mhash-0.9.9.9/ && ./configure
make && make install && cd ../

#4(如果 64 位系统 那么 /usr/lib64/*)
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 ln -s /usr/local/lib/libmhash.a /usr/lib/libmhash.a ln -s /usr/local/lib/libmhash.la /usr/lib/libmhash.la ln -s /usr/local/lib/libmhash.so /usr/lib/libmhash.so ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2 ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 ln -s /usr/local/bin/libmcrypt-config /usr/bin/libmcrypt-config tar -zxvf mcrypt-2.6.8.tar.gz &&cd mcrypt-2.6.8/ /sbin/ldconfig ./configure make && make install && cd ../

 

 //编译php

cd ../
tar zxvf mirror
 
cd php-5.4.10
 
./configure --prefix=/usr/local/webserver/php \
--with-mysql=/usr/local/webserver/mysql \
--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config \
--with-config-file-path=/usr/local/webserver/php/etc \
--with-jpeg-dir --with-png-dir --with-zlib \
--with-mhash --enable-sockets --enable-ftp \
--with-libxml-dir --enable-xml --disable-rpath \
--enable-safe-mode --enable-bcmath \
--enable-shmop --enable-sysvsem \
--enable-inline-optimization --with-curl \
--with-curlwrappers \
--enable-mbregex \
--enable-mbstring --with-mcrypt --with-gd \
--enable-gd-native-ttf --with-ttf --with-openssl --with-mhash \
--enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl \
--enable-fpm \
--with-xmlrpc --enable-zip --enable-soap \
--without-pear \
--with-freetype-dir \

make ZEND_EXTRA_LIBS='-liconv'

#注意这里容易出现 make: *** [ext/phar/phar.php] 错误 127
#出现mysql client解决方法 

ln -s /usr/local/mysql/lib/libmysqlclient.so /usr/lib/
ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
#或者chmod: 无法访问 “ext/phar/phar.phar”: 没有那个文件或目录 #make: [ext/phar/phar.phar] 错误 1 (忽略) #解决方法在编译的时候加--without-pear参数 #或者把ext/phar/phar.php 改为 ext/phar/phar.phar #如果还不行,make的时候不添加 ZEND_EXTRA_LIBS='-liconv' 参数 make install #选择PHP.ini配置文件
cp php.ini-production /usr/local/webserver/php/etc/php.ini

 

 

//更改PHP-FPM

#添加WWW用户
/usr/sbin/groupadd www && /usr/sbin/useradd -g www www
mkdir -p /data/log&& chmod +w /var/data && chown -R www:www /data/log

cp /usr/local/webserver/php/etc/php-fpm.conf.default /usr/local/webserver/php/etc/php-fpm.conf
vi /usr/local/webserver/php/etc/php-fpm.conf
  
#去掉/更改 配置文件中的;
pm.max_children = 64 
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 1024
error_log=/data/log/php-fpm.log
user = www
group = www 

#检查语法是否正确
/usr/local/webserver/php/sbin/php-fpm -t
#出现NOTICE: configuration file /usr/local/webserver/php/etc/php-fpm.conf test is successful 测试成功
/usr/local/webserver/php/sbin/php-fpm 
#设置开机启动
vi /etc/rc.d/rc.local
#在行末加入
/usr/local/webserver/php/sbin/php-fpm 

#返回安装包目录 
cd ../

 

  nginx

//安装Nginx

#安装pcre库
tar -zxvf pcre-8.13.tar.gz && cd pcre-8.13/ && ./configure
make && make install && cd ../

//编译nginx

cd ../
tar zxvf nginx-1.5.3.tar.gz
 
cd nginx-1.5.3
 
./configure --user=www --group=www-data \
--prefix=/usr/local/webserver/nginx \
--with-http_stub_status_module \
--with-http_ssl_module \ --with-http_ssl_module \
--with-pcre \ --with-http_stub_status_module \
make && sudo make install

//nginx.conf 

 

vi /usr/local/webserver/nginx/conf/nginx.conf

/*nginx.conf*/

worker_processes  8;
error_log  /data/logs/error.log;
pid        logs/nginx.pid;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  65535;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    server {
        listen       80; 
        server_name  localhost;
        access_log  /data/log/host.access.log  main;
        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   /home/www;
        }
        location / {            
          root           /home/www;
          index  index.html index.htm index.php;
        } 
      location ~ \.php$ {        
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME     $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
      location ~ \.(gif|jpg|jpeg|png|bmp|swf)$ {
          expires 30d;
        }  

    }     
 
}    

/*nginx.conf */


//启动nginx
/usr/local/webserver/nginx/sbin/nginx  //启动
/usr/local/webserver/nginx/sbin/nginx -t //检查conf
/usr/local/webserver/nginx/sbin/nginx -s reload //重启

#设置开机启动 vi /etc/rc.d/rc.local #在行末加入 /usr/local/webserver/nginx/sbin/nginx
 

 

测试

cd /data/www/
vi index.php

<?php
  phpinfo();
?>

 

  

 

 

posted on 2013-08-23 17:27  luffy丶zhao  阅读(515)  评论(0)    收藏  举报