设为首页 收藏本站
查看: 950|回复: 0

[经验分享] CentOS 6.5 编译安装 LNMP环境

[复制链接]
发表于 2017-11-15 11:52:18 | 显示全部楼层 |阅读模式
  建立一个软件包目录存放



mkdir -p /usr/local/src/
  清理已经安装包




DSC0000.gif
rpm -e httpd
rpm -e mysql
rpm -e php
yum -y remove httpd
yum -y remove mysql
yum -y remove php
#搜索apache包
rpm -qa http*
#强制卸载apache包
rpm -e --nodeps 查询出来的文件名
#检查是否卸载干净
rpm -qa|grep http*

  selinux可能会致使编译安装失败,我们先禁用它。永久禁用,需要重启生效



sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
  临时禁用,不需要重启



setenforce 0
  安装必备工具



yum -y install make gcc gcc-c++ gcc-g77 flex bison file libtool libtool-libs autoconf kernel-devel libjpeg libjpeg-devel libpng libpng-devel libpng10 libpng10-devel gd gd-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glib2 glib2-devel bzip2 bzip2-devel libevent libevent-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel gettext gettext-devel ncurses-devel gmp-devel pspell-devel unzip libcap lsof
安装mysql5.6.17
  按照标准需要给mysql创建所属用户和用户组





创建群组
groupadd mysql
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g mysql -M mysql
检查创建用户
tail -1 /etc/passwd

  centos最小化安装后,会有mysql的库因此先卸载!



检查安装与否
rpm -qa|grep mysql
强制卸载
rpm -e mysql-libs-5.1.73-3.el6_5.x86_64 --nodeps
  MySQL从5.5版本开始,通过./configure进行编译配置方式已经被取消,取而代之的是cmake工具。 因此,我们首先要在系统中源码编译安装cmake工具。





cd /usr/local/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.12.2.tar.gz
tar zxvf cmake-2.8.12.2.tar.gz
cd cmake-2.8.12.2
./configure
make && make install

  使用cmake来编译安装mysql5.6.17





cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.17.tar.gz
tar zxvf mysql-5.6.17.tar.gz
cd mysql-5.6.17
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DMYSQL_USER=mysql \
-DWITH_DEBUG=0 \
-DWITH_SSL=system
make && make install

  修改/usr/local/mysql权限



chmod +w /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
  进入support-files目录



cd support-files/
如果还有my.cnf请备份
mv /etc/my.cnf /etc/my.cnf.bak
如果愿意也可以复制配置文件到etc下
cp my-default.cnf /etc/my.cnf
  执行初始化配置脚本,创建系统自带的数据库和表,注意配置文件的路径



/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  拷贝mysql安装目录下support-files服务脚本到init.d目录



#拷贝脚本
cp mysql.server /etc/init.d/mysqld
#赋予权限
chmod +x /etc/init.d/mysqld
  设置开机启动



chkconfig mysqld on
启动MySQL
service mysqld start
或者
/etc/init.d/mysql start
  修改环境变量



修改/etc/profile文件
vi /etc/profile
在文件末尾添加
PATH=/usr/local/mysql/bin:$PATH
export PATH
  让配置立即生效



source /etc/profile
  登陆测试,默认是没有密码,直接回车就可进入



mysql -uroot -p
  ***************************安装 PHP 的分割线******************************************************
  安装依赖关系
  libiconv库为需要做转换的应用提供了一个iconv()的函数,以实现一个字符编码到另一个字符编码的转换





cd /usr/local/src
wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
tar zxvf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make && make install

  libmcrypt是加密算法扩展库。





cd /usr/local/src
wget http://iweb.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure
make && make install

  Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。





cd /usr/local/src
wget https://nchc.dl.sourceforge.net/project/mhash/mhash/0.9.9.9/mhash-0.9.9.9.tar.gz
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure
make && make install

  编译mcrypt可能会报错:configure: error: *** libmcrypt was not found



vi  /etc/ld.so.conf
最后一行添加
/usr/local/lib/
载入
ldconfig
  mcrypt 是 php 里面重要的加密支持扩展库,Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密,也可以密文还原。





cd /usr/local/src
wget http://iweb.dl.sourceforge.net/project/mcrypt/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz
tar zxvf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
./configure
make && make install

  编译mcrypt可能会报错:/bin/rm: cannot remove `libtoolT': No such file or directory   如果出现错误,用下面的方法



修改 configure 文件,把RM='$RM'改为RM='$RM -f' 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。
  正式开始编译php!





cd /usr/local/src
wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
tar zxvf php-5.6.30.tar.gz
cd php-5.6.30
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv=/usr/local/libconv-1.14 --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install

  如果出现 resinstall iconv





cd /usr/local/src
cd php-5.6.30
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --disable-fileinfo --enable-maintainer-zts
make && make install

  修改fpm配置php-fpm.conf.default文件名称



mv /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
  复制php.ini配置文件



cp php.ini-production /usr/local/php/etc/php.ini
  复制php-fpm启动脚本到init.d



cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  赋予执行权限



chmod +x /etc/init.d/php-fpm
  添加为启动项



chkconfig --add php-fpm
  设置开机启动



chkconfig php-fpm on
  按照标准,给php-fpm创建一个指定的用户和组



创建群组
groupadd www
创建一个用户,不允许登陆和不创主目录
useradd -s /sbin/nologin -g www -M www
  将5.6版本的php添加到环境变量(如果不添加,默认是5.3版本)




修改/etc/profile文件
vi /etc/profile在文件末尾的 PATH=/usr/local/mysql/bin:$PATH 后面再加PHP的命令目录PATH=/usr/local/mysql/bin:$PATH:/usr/local/php/bin

让配置生效
source /etc/profile

  立即启动php-fpm



service php-fpm start
#或者
/etc/init.d/php-fpm start
  php安装完成
  ***************nginx安装分割线*****************
  安装openssl





cd /usr/local/src
wget https://www.openssl.org/source/openssl-1.0.2k.tar.gz
tar zxvf openssl-1.0.2k.tar.gz
cd openssl-1.0.2k
./config --prefix=/usr/local/src/openssl --openssldir=/usr/local/src/openssl/conf

make && make install
#检验安装
/usr/local/src/openssl/bin/openssl version -a

  安装pcre





cd /usr/local/src
rm -rf pcre
rm -rf pcre-8.37
wget https://ftp.pcre.org/pub/pcre/pcre-8.37.tar.gz
tar zxvf pcre-8.37.tar.gz
cd pcre-8.37
./configure --prefix=/usr/local/src/pcre/
make && make install

  安装zlib软件





cd /usr/local/src
rm -rf zlib
rm -rf zlib-1.2.11
wget https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
tar zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/local/src/zlib/
make && make install

  安装nginx





#添加www用户和组
groupadd www
useradd -g www www
#创建网站根目录
mkdir -p     /var/www/root/
chmod -R 775 /var/www/root/
#进入安装目录
cd /usr/local/src
#删除原有安装
rm -rf nginx
rm -rf nginx-1.12.0
wget http://nginx.org/download/nginx-1.12.0.tar.gz

tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.0
#配置(使用openssl、pcre、zlib的源码路径)
./configure \
--user=www \
--group=www \
--prefix=/usr/local/src/nginx \
--with-http_ssl_module \
--with-openssl=/usr/src/openssl-1.0.2k \
--with-pcre=/usr/src/pcre-8.37 \
--with-zlib=/usr/src/zlib-1.2.11 \
--with-http_stub_status_module \
--with-threads

make && make install

#验证
/usr/local/src/nginx/sbin/nginx -V

  修改配置文件



vi /usr/local/src/nginx/conf/nginx.conf





修改配置文件中
一:
location / {
root   html;                    //网站根目录
index  index.html index.htm;
}
修改为
location / {
root    /var/www/root;
index  index.html index.htm;
}
二:
#location ~ \.php$ {
#    root           html;            //网站根目录
#    fastcgi_pass   127.0.0.1:9000;    //将php传给9000好端口php-fpm
#    fastcgi_index  index.php;        
#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;    //需修改
#    include        fastcgi_params;
#}

修改为
location ~ \.php$ {   
  autoindex_exact_size off;         #文件大小从KB开始显示
  autoindex_localtime on;            #显示文件修改时间为服务器本地时间
root    /var/www/root;        #自定义网站根目录
fastcgi_pass   127.0.0.1:9000;    #需要开启
fastcgi_index  index.php;        #需要开启
fastcgi_param  SCRIPT_FILENAME   /var/www/root/$fastcgi_script_name;  
include        fastcgi_params;    #需要开启
}

如果要开启目录浏览功能 ,在 server大括号选项中加入
autoindex on;                 #开启nginx目录浏览功能


  启动nginx



/usr/local/src/nginx/sbin/nginx
  如果出现 nginx: [error] open() "/usr/local/src/nginx/logs/nginx.pid" failed (2: No such file or directory) 这个错误



/usr/local/src/nginx/sbin/nginx -c /usr/local/src/nginx/conf/nginx.conf
  这时已经启动成功



ps aux | grep nginx
DSC0001.png

  可以看到master 和 worker 进程开启
  重启 nginx命令



/usr/local/src/nginx/sbin/nginx -s reload
  关闭ngixn



pkill -9 nginx
  测试端口



netstat | grep 80
  浏览器测试



IP:80
本地的话
127.0。0.1
  如果访问不了,查看下防火墙的80端口是否开通





vi /etc/sysconfig/iptables
#看是否有下面这句 没有补上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#重启防火墙
/etc/init.d/iptables restart

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-407206-1-1.html 上篇帖子: CentOS 7.2 配置静态 IP 下篇帖子: CentOS-7系统下安装MySQL5.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表