今天公司的企业网站需要搬迁到美国的服务器,就需要重新配置服务器的环境,采用的是lnmp的环境来运行php。下面是安装的方法。
一.服务器配置总体介绍
a、系统环境 CentOS 6.5 64位 ,4核cpu ,4G内存,5M带宽。
b、需要安装的主要软件:Nginx 、 PHP(FastCGI) 、 MySQL 、 版本如下nginx-1.8.0 php-5.6.10 mysql-5.6.13
二、软件下载(下载到本地,然后进行解压)
下载链接: http://pan.baidu.com/s/1nvcnqdz 密码: 2nxv
解压到 /home/softsrc/后主要软件压缩包如下图:
三.准备安装
a、准备工作:为了下面的安装顺利建议先使用yum安装依赖库,我就把它叫做前期工作吧
sudo -s LANG=C 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 pcre pcre-devel GeoIP GeoIP-devel GeoIP-data patch
注意,所有软件都下载上传到了 /home/softsrc/ 下面 一共1个软件(nginx1.8.0+php5.6.10+mysql5.6.12.rar)
#有的机器没有wget命令,运行yum install -y wget 即可安装
b、.安装Nginx,进入cd /home/softsrc/ 目录中,
1、安装nginx需要的扩展包pcre
tar zxvf pcre-8.33.tar.gz cd pcre-8.33/ ./configure make && make install cd ../
2、安装pcre后安装nginx软件
tar -zxvf nginx-1.8.0.tar.gz cd nginx-1.8.0 vi auto/cc/gcc #将这句注释掉 取消Debug编译模式 大概在179行 注释这里是关闭nginx的调试模式,默认是开启调试模型 #CFLAGS="$CFLAGS -g" #我们再配置下nginx编译参数 ./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module make && make install cd ../
注意:--user=www 表示安装的用户 ,--group=www表示安装的用户组,--prefix=/usr/local/webserver/nginx表示安装的目录,后面的这些是需要安装的nginx自带插件扩展,这个可以根据需要自行调整
3、安装完成后配置网站的虚拟目录,用于保存网站的各项数据。
mkdir -p /media/raid10/logs chmod +w /media/raid10/logs chown -R www:www /media/raid10/logs
4、创建Nginx配置文件
#在/usr/local/webserver/nginx/conf/目录中创建nginx.conf文件: rm -f /usr/local/webserver/nginx/conf/nginx.conf vi /usr/local/webserver/nginx/conf/nginx.conf #输入下面的nginx内容,可根据相对应需求进行修改) #user nobody; worker_processes 4; #一般为当前机器总cpu核心数的1到2倍。如,我的机器为双核,那么开4个足够了 error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; pid /usr/local/webserver/nginx//nginx.pid; worker_rlimit_nofile 65535; events { use epoll; worker_connections 65535; } http { include mime.types; default_type application/octet-stream; #charset gb2312; server_names_hash_bucket_size 256; client_header_buffer_size 64k; large_client_header_buffers 8 64k; client_max_body_size 8m; 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 128k; fastcgi_buffers 8 128k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; gzip on; gzip_min_length 1k; gzip_buffers 8 32k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; #limit_zone crawler $binary_remote_addr 10m; server { listen 80; server_name www.expamle.com expamle.com 127.0.0.1; index index.html index.htm index.php; root /media/raid10/htdocs/www/ #charset koi8-r; #access_log logs/host.access.log main; location / { if (!-e $request_filename){ rewrite ^/(.*)$ /index.php?s=/$1 last; break; } } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; 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; } location ~ .*\.(js|css)?$ { expires 1h; } } }
5、配置完成后启动nginx
#添加开机自启动
vi /etc/rc.local #在这个文件里面添加如下 ulimit -SHn 65535 /usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
6.启动Nginx
ulimit -SHn 65535 /usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
c、安装mysql5.6.13,这个是采用cmake安装,进入 cd /home/softsrc/ 目录中。
1、安装cmake软件包(如果已安装可以忽略)
yum install cmake #创建授权用户和用户组 /usr/sbin/groupadd mysql /usr/sbin/useradd -g mysql mysql #安装mysql cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_DATADIR=/media/raid10/mysql/3306/data/ -DWITH_INNOBAS #5.7版本的 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_DATADIR=/media/raid10/mysql/3306/data/ -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR==/tmp/mysql.sock -DMYSQL_USER=mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost
注意sock的地址(/tmp/mysql.sock),这个需要跟php的socke地址(mysql.default_socket =/tmp/mysql.sock)一致的
#我们先配置下MySQL的编译参数 一般我们就配置下安装路径就可以了 如你有特殊配置也可以在安装之后修改参数也可以的
编译完成后这里你大可以泡杯茶 编译需要较长的时间
Make
make install
2、编译安装完成后:
#添加mysql用户 useradd mysql chmod +w /usr/local/webserver/mysql chown -R mysql:mysql /usr/local/webserver/mysql
3、创建MySQL数据库存放目录
mkdir -p /media/raid10/mysql/3306/data/ mkdir -p /media/raid10/mysql/3306/binlog/ mkdir -p /media/raid10/mysql/3306/relaylog/ chown -R mysql:mysql /media/raid10/mysql/
4、安装数据库目录
/usr/local/webserver/mysql/scripts/mysql_install_db --basedir=/usr/local/webserver/mysql --datadir=/media/raid10/mysql/3306/data --user=mysql --defaults-file=/etc/my.cnf
5、创建my.cnf配置文件
cd /usr/local/webserver/mysql/support-files/ #复制mysql管理脚本 cp mysql.server /etc/rc.d/init.d/mysql #复制mysql配置文件 cp my-default.cnf /etc/my.cnf #添加mysql服务 chkconfig --add mysql #加入开机启动策略 chkconfig mysql on #启动mysql服务 service mysql start #或者/etc/init.d/mysql start
6、通过以下命令登录管理MySQL服务器(提示输入密码直接回车,这是用root登录的)
/usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock #或者 /usr/local/webserver/mysql/bin/mysql -u root -p -S /tmp/mysql.sock #密码留空,直接回车
7、输入以下SQL语句,用于创建一个具有root权限的用户 ,用户名是 上面提到的 admin 密码 是 xxxx
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'xxx' WITH GRANT OPTION; #xxx 表示密码 flush privileges ;
d、安装php,进入 cd /home/softsrc/ 目录中。
1.编译安装 PHP 5.6所需的支持库
#安装libiconv库 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 ../ 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 ../
2、安装php软件
tar -zxvf php-5.6.10.tar.gz cd php-5.6.10 #我们先配置下PHP的编译参数 ./configure --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-mysql=/usr/local/webserver/mysql --with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --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 make ZEND_EXTRA_LIBS='-liconv' make install clean
a.当编译遇到:configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
解决方法:执行下面的方法,然后重新编译php 就可以了
echo /usr/local/webserver/mysql/lib >> /etc/ld.so.conf.d/mysql-x86_64.conf
ldconfig -v
b.Cannot find ldap libraries in /usr/lib 解决方法:cp -frp /usr/lib64/libldap* /usr/lib/
3、安装php后编译安装PHP5扩展模块
#memcache 主要用于Memcache缓存的配置 tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make make install cd ../ #安装ImageMagick扩展主要处理图片的压缩,裁剪,动态生成图片 tar zxvf ImageMagick.tar.gz cd ImageMagick-6.5.1-2/ ./configure make make install cd ../ #安装imagick扩展主要处理图片的作用 wget http://pecl.php.net/get/imagick-3.1.1.tgz tar zxvf imagick-3.1.1.tgz cd imagick-3.1.1 /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config make make install cd ../ #安装PDO_MYSQL扩展,主要用pdo连接mysql数据库 tar zxvf PDO_MYSQL-1.0.2.tgz cd PDO_MYSQL-1.0.2/ /usr/local/webserver/php/bin/phpize ./configure --with-php-config=/usr/local/webserver/php/bin/php-config --with-pdo-mysql=/usr/local/webserver/mysql make make install cd ../
出错的问题1:
出错的原因和解决方法:
ln -s /usr/local/webserver/mysql/include/mysql/* /usr/local/include/
ln -s /usr/local/webserver/mysql/include/* /usr/local/include/
出错的问题2:
报这个错的时候,缺少安装perl-devel:运行,yum install -y perl-devel
4、编译安装完扩展,创建www用户和组,以及供网站虚拟主机使用的目录:
/usr/sbin/groupadd www /usr/sbin/useradd -g www www mkdir -p /media/raid10/htdocs/www chmod +w /media/raid10/htdocs/www chown -R www:www /media/raid10/htdocs/www
5、创建php的配置
#进入目录: /home/softsrc/php-5.6.10/ #复制php.ini cp php.ini-production /usr/local/webserver/php/etc/php.ini cd /usr/local/webserver/php/etc/ cp php-fpm.conf.default php-fpm.conf #使用PHP-FPM管理脚本,在编译包里面已经配置好了,只需要复制到/etc/init.d/中即可 cd /home/softsrc/php-5.6.10/sapi/fpm/ cp init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm #启动php-fpm service php-fpm start|restart|stop #加入开机启动策略 chkconfig --add php-fpm chkconfig php-fpm on
错误问题描述
第一、error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory这个错误,我的mysql是二进制包,位置是/usr/local/mysql下,然后我看了下/usr/local/mysql/lib/下是有libmysqlclient.so.18这个文件的.
解决办法:
echo "/usr/local/webserver/mysql/lib" >>/etc/ld.so.conf
然后执行ldconfig -v使其生效.
configure: error: off_t undefined; check your library configuration
echo "/usr/local/webserver/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
然后执行ldconfig -v使其生效.
第二:/usr/bin/ld: cannot find -liconv
解决方法: 重新安装libiconv
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14/
./configure --prefix=/usr/local
make
make install
cd ../
第三:error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
http://blog.sina.com.cn/s/blog_8701ca0201016g7m.html
第四:
解决方法:升级软件的版本下载最新版本:http://mirror.checkdomain.de/imagemagick/
到这里nginx+php+mysql都已经安装成功了,我这里写的不是很详细,需要有一定服务器知识的人才能看的明白,如果大家有什么问题,都可以一起交流交流,共同进步嘛。