CentOS 6.4 LNMP环境编译

安装步骤

安装php的依赖包
编译安装MySQL5.5
编译安装php(FastCGI模式)
编辑php-fpm配置文件
安装Nginx服务器
配置nginx虚拟主机

准备php函数的rpm包

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 cmake bison

1)libiconv-1.13.1

# tar -zxvf libiconv-1.13.1.tar.gz
# ./configure --prefix=/usr/local/
make && make install

2)libmcrypt-2.5.8

# tar -zxvf libmcrypt-2.5.8.tar.gz
# ./configure
make && make install
# cd libltdl/
# ./configure --enable-ltdl-install
make && make install

3)mhash-0.9.9.9

# tar -zxvf mhash-0.9.9.9.tar.gz
# ./configure
make && make install
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

4)mcrypt-2.6.8

# tar -zxvf mcrypt-2.6.8.tar.gz
# ./configure
make && make install

5)编译安装MySQL5.5
添加账户 

groupadd mysql  
useradd mysql -g mysql -M -s /bin/false
# tar -zxvf mysql-5.5.49.tar.gz

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_DEBUG=0 \
-DWITH_READLINE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1
make && make install

初始化mysql服务

chown -R mysql.mysql /usr/local/mysql
# cp support-files/my-large.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod 755 /etc/init.d/mysqld
# chkconfig --add mysqld
# /usr/local/mysql/scripts/mysql_install_db --user=mysql \
--basedir=/usr/local/mysql --defaults-file=/etc/my.cnf \
--datadir=/usr/local/mysql/data/

更改密码

# /usr/local/mysql/bin/mysqladmin -u root password 'root'

6)编译安装PHP(FastCGI模式)

# tar -zxvf php-5.5.37.tar.gz

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock=/tmp/mysql.sock --with-iconv-dir=/usr/local --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml \
--disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization \
--with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd \
--enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap \
--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --without-pear \
--with-gettext --enable-session

报错:

configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no

解决办法:

--在/etc/ld.so.conf.d中添加local.conf文件:
echo "/usr/local/lib">> /etc/ld.so.conf.d/local.conf
--更新动态库:
ldconfig -v
make ZEND_EXTRA_LIBS='-liconv' && make install
# cp php.ini-production  /usr/local/php/etc/php.ini
# ln -s /usr/local/php/etc/php.ini /etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
--添加运行www组
groupadd www
--创建nginx运行账户www并加入到www组,不允许www用户直接登录系统
useradd -g www www -s /bin/false
--编辑php-fpm配置文件
vi /usr/local/php/etc/php-fpm.conf 

user = www         --设置php-fpm运行账号为www
group = www     --设置php-fpm运行组为www
pid = run/php-fpm.pid     --取消前面的分号

设置 php-fpm开机启动

# cp /root/php-5.5.37/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm
# chmod +x /etc/rc.d/init.d/php-fpm
# chkconfig php-fpm on

安装pdo拓展

# tar -zxvf PDO_MYSQL-1.0.2.tgz
# cd PDO_MYSQL-1.0.2
# /usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config \
--with-pdo-mysql=/usr/local/mysql/
make && make install

报错:

/root/PDO_MYSQL-1.0.2/php_pdo_mysql_int.h:25:19: 错误:mysql.h:没有那个文件或目录

解决:

--在编译时需要MySQL的头的文件,默认搜索找不到头文件的位置,需要建立个软连接:
# ln -s /usr/local/mysql/include/* /usr/local/include/

编译成功后的扩展目录"/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/"加到php.ini的拓展文件路径中

7)安装Nginx所需的pcre库

# tar -zxvf pcre-8.10.tar.gz
# ./configure
make && make install

8)安装Nginx

# tar -zxvf nginx-0.8.46.tar.gz
# ./configure --user=www --group=www --prefix=/usr/local/nginx \
--with-http_stub_status_module --with-http_ssl_module
make && make install

修改nginx配置文件

# vi /usr/local/nginx/conf/nginx.conf

user  www www;

error_log  logs/error.log;


pid        logs/nginx.pid;

worker_rlimit_nofile 65535;

events {
    use epoll;
    worker_connections  65535;
}

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"';

access_log  logs/access.log  main;

    location / {
        root   html;
        index index.php index.html index.htm;
    }
    
location ~ \.php$ {
        root           html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
--修改最多文件打开数
# ulimit -SHn 65535
--直接加入开机启动 /etc/rc.local
ulimit -SHn 65535
/usr/local/nginx/sbin/nginx

检查nginx是否有语法错误

# /usr/local/nginx/sbin/nginx -t

重新加载nginx配置文件

pkill -HUP nginx

 

posted on 2017-06-28 16:41  gimin  阅读(160)  评论(0)    收藏  举报