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
浙公网安备 33010602011771号