LNMP编译安装手记
2017-03-31 00:00
211 查看
最近一直在捣鼓centos学习,看完了《鸟哥的Linux私房菜》,自己准备的终极考核当然是每个PHPer的基本功,源码编译安装LNMP。一般的编译安装过程按nginx,mysql,php来即可。
环境:CentOS 6.8
目标:
nginx-1.11.10
mysql-5.6.35
php-7.1.2
安装成功后,制作启动脚本,添加服务,脚本nginx官网上有提供https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/,复制到/etc/init.d/nginx。
然后你的nginx就设置为开机启动了,可以使用service nginx start/stop 控制nginx
mysql比较特殊,使用cmake生成makefile
如果cmake报错,安装报错需要的依赖库后,记得删除CMakeCache.txt文件重新cmake
如果遇到报错
CMAKE_CXX_COMPILER not set,是因为没有 gcc-c++
执行
yum -y install gcc-c++
安装成功后为mysql添加启动用户和启动脚本
启动mysql服务器后,用/usr/local/mysql/bin/mysql -uroot 联接服务器,如果报错
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/tmp/mysql/mysql.sock’ (2)
是因为socket文件不存在,编辑/etc/mysql.cnf,添加下面配置,重启mysql服务器就可以了
注意,自5.3以后,以前安装MySQL extension, mysqli, PDO MYSQL需要使用MySQL Client Library (libmysqlclient),即需要指定mysql安装目录,依赖于mysql的安装,使用mysqlnd则不再依赖mysql的安装。
./configure时如果遇到报错
错误1
configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no
原因:有可能是因为找不到动态函数库了,可以进行下面尝试,将指定目录下的动态函数库加载到内存中
错误2
configure: error: off_t undefined; check your library configuration
原因:没有安装libzip
大功告成!!!花了我整整4个晚上。。。
环境:CentOS 6.8
目标:
nginx-1.11.10
mysql-5.6.35
php-7.1.2
nginx
先去官网上下载最新的源码包nginx-1.11.12,解压至代码目录。tar -zxvf nginx-1.11.12.tar.gz -C /usr/local/src #然后安装依赖的库函数文件,编译器 yum -y install openssl* pcre* gcc cd /usr/local/src/nginx-1.11.10/ #建立Makefile ./configure --user=daemon \ --group=daemon \ --prefix=/usr/local/nginx \ --with-http_stub_status_module \ --with-http_ssl_module \ --with-http_sub_module \ --with-http_gzip_static_module \ --with-http_v2_module #至与这些模块什么含义,自行Google #如果没有报错的话,就可以正式编译安装了 make && make install
安装成功后,制作启动脚本,添加服务,脚本nginx官网上有提供https://www.nginx.com/resources/wiki/start/topics/examples/redhatnginxinit/,复制到/etc/init.d/nginx。
shell> chmod a+x /etc/init.d/nginx shell> chkconfig --add nginx shell> chkconfig --levels 35 nginx on
然后你的nginx就设置为开机启动了,可以使用service nginx start/stop 控制nginx
mysql
mysql编译安装了mysql-5.6.35,先去官网上下载。mysql官网上有Enterprise企业版(收费?)和Community社区版,下载社区版源码包即可。mysql比较特殊,使用cmake生成makefile
#首先安装依赖库 yum -y install make gcc-c++ cmake bison-devel ncurses-devel gcc \ autoconf automake zlib* fiex* libxml* libmcrypt* libtool-ltdl-devel* #开始生成makefile 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 \ -DMYSQL_UNIX_ADDR=/tmp/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 \ -DENABLE_DOWNLOADS=1 #如果没有报错 make && make install
如果cmake报错,安装报错需要的依赖库后,记得删除CMakeCache.txt文件重新cmake
如果遇到报错
CMAKE_CXX_COMPILER not set,是因为没有 gcc-c++
执行
yum -y install gcc-c++
安装成功后为mysql添加启动用户和启动脚本
shell> useradd -r mysql -s /sbin/nologin shell> cd /usr/local/mysql shell> chown -R mysql . shell> chgrp -R mysql . shell> scripts/mysql_install_db --user=mysql shell> chown -R root . shell> chown -R mysql data shell> bin/mysqld_safe --user=mysql & shell> cp support-files/mysql.server /etc/init.d/mysql shell> chmod a+x /etc/init.d/mysql shell> chkconfig --add mysql shell> chkconfig --levels 35 mysqlon
启动mysql服务器后,用/usr/local/mysql/bin/mysql -uroot 联接服务器,如果报错
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket
‘/tmp/mysql/mysql.sock’ (2)
是因为socket文件不存在,编辑/etc/mysql.cnf,添加下面配置,重启mysql服务器就可以了
vim /etc/mysql.cnf [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid [client] socket=/var/lib/mysql/mysql.sock :wq
php
下载安装最新的php-7.1.3.tar.bz2 ,解压安装至/usr/local/srctar -jzvf php-7.1.3.tar.bz2 -C /usr/local/src cd /usr/local/src/php-7.1.3 #安装依赖库文件 yum -y install libpng-devel libXpm-devel gmp-devel libjpeg-devel libcurl* freetype* libzip libxml2* #生成makefile ./configure --prefix=/usr/local/php-7.1.2 \ --with-config-file-path=/usr/local/php-7.1.2/etc \ --with-mysqli \ --with-pdo-mysql \ --enable-fpm \ --disable-rpath \ --without-pear \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-gd \ --with-zlib \ --with-libxml-dir \ --enable-xml \ --enable-mbstring \ --enable-gd-native-ttf \ --enable-ftp \ --enable-sockets \ --enable-zip \ --with-gmp \ --with-openssl \ --with-fpm-user=daemon \ --with-fpm-group=daemon \ --with-mcrypt=/usr/include \ --with-curl
注意,自5.3以后,以前安装MySQL extension, mysqli, PDO MYSQL需要使用MySQL Client Library (libmysqlclient),即需要指定mysql安装目录,依赖于mysql的安装,使用mysqlnd则不再依赖mysql的安装。
./configure时如果遇到报错
错误1
configure: error: Don’t know how to define struct flock on this system, set –enable-opcache=no
原因:有可能是因为找不到动态函数库了,可以进行下面尝试,将指定目录下的动态函数库加载到内存中
vim /etc/ld.so.conf # 编辑库文件 /usr/local/lib64 # 添加该行 /usr/local/lib # 添加该行 /usr/lib # 添加该行 /usr/lib64 # 添加该行 :wq # 保存退出 ldconfig -v # 使之生效
错误2
configure: error: off_t undefined; check your library configuration
原因:没有安装libzip
yum -y install libzip
大功告成!!!花了我整整4个晚上。。。
相关文章推荐
- VS2005下编译、安装Net-snmp 5.4.1.2手记(原创)
- 手把手编译安装实现LNMP架构(图解)
- LNMP的编译安装
- lnmp 源码编译安装!
- lnmp编译安装
- 编译安装LNMP
- 新版YARV(基于Ruby 1.9.0 v2006-11-01)编译/安装/测试手记
- LNMP的编译安装解析
- lnmp源码编译安装过程
- 编译安装lnmp
- mysql5.58编译安装手记
- CentOS 编译 nginx+php+mysql 安装手记
- CentOS 编译 nginx+php+mysql 安装手记
- LNMP编译安装配置+discuz
- CentOS 6.0(X64)下编译安装LNMP平台( Nginx1.0.10 + PHP5.3.8 + Mysql5.5.18 )
- boost 1.39编译安装手记
- CentOS 编译 nginx+php+mysql 安装手记
- LNMP一键安装包-CentOS 5/6下自动编译安装Nginx,MySQL,PHP,memcached
- LNMP的编译安装(2)
- lnmp编译安装