源码编译安装,搭建LNMP环境(Linux+Nginx+MySQL+PHP)
2017-08-29 13:18
1906 查看
前几天一朋友让帮忙搭建LNMP环境,常用服务Nginx, MySQL, PHP, 个人不习惯用一键LNMP工具。一键安装会给自己装一些根本用不到的服务。还是自己需要什么服务,编译什么更好。
个人习惯的目录结构:
这样,常用服务很容易找到,而且目录结构更清晰。
Google,baidu 也没有找到一份完整的搭建LNMP环境教程,因为好久没有源码编译安装,现在只能自己一点一点重新摸索。
下面整理一份搭建步骤和简单的注意事项。
(下面文档根据印象整理,有什么不对的地方或者疑问望指出来,一起探讨修正)
内存: 1G内存
CPU: 1核
带宽: 1Mbps
MySQL-5.6.26
PHP-5.6.31
(开发者具体使用什么版本的服务,到官网下载相应的版本即可)
gcc 编译器,只能编译c代码(不确定是否准确具体请Google)
gcc-c++ 编译器,为gcc提供c++语言特性支持(不确定是否准确具体请Google)
make 编译源代码包,是用来执行Makefile的
zlib 压缩库,支持读写 gzip 压缩
pcre 正则
openssl HTTPS 服务
进入Nginx官网,下载Nginx包,nginx-1.8.1版本:
个人习惯的目录结构:
/home/xiaowujun/softs/ #存放常用服务或工具安装包 .tar /data/apps/ #服务的安装目录, 如: /data/apps/mysql, /data/apps/nginx, /data/apps/php /data/webs/ #不同项目目录,如: /data/webs/www.xiaowujun.com, /data/webs/blog.xiaowujun.com
这样,常用服务很容易找到,而且目录结构更清晰。
Google,baidu 也没有找到一份完整的搭建LNMP环境教程,因为好久没有源码编译安装,现在只能自己一点一点重新摸索。
下面整理一份搭建步骤和简单的注意事项。
(下面文档根据印象整理,有什么不对的地方或者疑问望指出来,一起探讨修正)
机器性能,配置(最基本的)
阿里云主机内存: 1G内存
CPU: 1核
带宽: 1Mbps
服务及版本
Nginx-1.8.1MySQL-5.6.26
PHP-5.6.31
(开发者具体使用什么版本的服务,到官网下载相应的版本即可)
安装 Nginx
安装 Nginx 所依赖的基本服务:yum -y install gcc gcc-c++ make zlib-devel pcre-devel openssl-devel
gcc 编译器,只能编译c代码(不确定是否准确具体请Google)
gcc-c++ 编译器,为gcc提供c++语言特性支持(不确定是否准确具体请Google)
make 编译源代码包,是用来执行Makefile的
zlib 压缩库,支持读写 gzip 压缩
pcre 正则
openssl HTTPS 服务
进入Nginx官网,下载Nginx包,nginx-1.8.1版本:
cd /home/xiaowujun/softs/ wget https://nginx.org/download/nginx-1.8.1.tar.gz[/code]
解压,配置:tar -zxf nginx-1.8.1.tar.gz cd nginx-1.8.1 ./configure --prefix=/data/apps/nginx-1.8.1 --with-http_ssl_module --with-pcre --without-http_scgi_module --without-http_fastcgi_module --with-http_gzip_static_module
编译,安装:make && make install
启动 Nginx:/data/apps/nginx-1.8.1/sbin/nginx
参考:
Nginx官方文档安装 MySQL
安装 MySQL 所依赖的服务:yum install ncurses-devel yum install cmake
ncurses 一个程序库,它提供了API,可以允许程序员编写独立于终端的基于文本的用户界面。
cmake 跨平台项目管理工具,是抽象层次更高的项目管理工具,cmake命令执行的CMakeLists.txt文件
进入 MySQL官网,下载资源包,mysql-5.6.26:cd /home/xiaowujun/softs/ wget https://cdn.mysql.com//archives/mysql-5.6/mysql-5.6.26.tar.gz[/code]
解压,编译,安装:tar -zxf mysql-5.6.26.tar.gz cd mysql-5.6.26 cmake -DCMAKE_INSTALL_PREFIX=/data/apps/mysql-5.6.26 -DMYSQL_DATADIR=/data/apps/mysql-5.6.26/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/tmp/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 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./ make && make install
设置和初始化:# 创建 mysql 用户 及 mysql 组 groupadd mysql useradd -g mysql mysql cd /data/apps/mysql-5.6.26 chown -R mysql:mysql . # 初始化 MySQL 自身数据库 ./scripts/mysql_install_db —user=mysql --basedir=/data/apps/mysql-5.6.26 --datadir=/data/apps/mysql-5.6.26/data # 安全性,恢复 root 组 chown -R root . # 将mysql的配置文件拷贝到/etc cp support-files/my-medium.cnf /etc/my.cnf
启动 MySQL (使用 mysql 用户启动):/data/apps/mysql-5.6.26/bin/mysqld_safe --user=mysql & # 查看 mysql,看是否成功 3306端口 netstat -tnl|grep 3306
加入到系统服务:cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld chmod 700 /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on# 启动 service mysqld start # 停止 service mysqld stop # 重启 service mysqld restart
设置 root 密码(方法很多,可以Google下)和 登录:# 设置密码,命令后,确认两次密码即可。 /data/apps/mysql-5.6.26/bin/mysqladmin -u root -p '你的密码' # 登录 /data/apps/mysql-5.6.26/bin/mysql -uroot -p注意:
MySQL 的5.6.26以后的版本在编译安装时 至少需要 大于1G的内存才能正常编译。否则会报错,编译程序会强制被杀死:[ 50%] Building CXX object sql/CMakeFiles/sql.dir/item_func.cc.o [ 51%] Building CXX object sql/CMakeFiles/sql.dir/item_geofunc.cc.o c++: 编译器内部错误:已杀死(程序 cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <http://bugzilla.redhat.com/bugzilla> for instructions. make[2]: *** [sql/CMakeFiles/sql.dir/item_geofunc.cc.o] 错误 4 make[1]: *** [sql/CMakeFiles/sql.dir/all] 错误 2 make: *** [all] 错误 2
初始化 MySQL 自身数据库时,有的人会用 ./bin/mysqld –initialize-insecure./bin/mysqld --initialize-insecure --user=mysql --basedir=/data/apps/mysql-5.6.26 --datadir=/data/apps/mysql-5.6.26/data
报错:[root@iZ2zedai2pevz7grtqvl0lZ mysql-5.6.26]# ./bin/mysqld --initialize-insecure --user=mysql --basedir=/data/apps/mysql-5.6.26 --datadir=/data/apps/mysql-5.6.26/data 2017-08-30 16:42:54 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-08-30 16:42:54 0 [Note] ./bin/mysqld (mysqld 5.6.26) starting as process 25919 ... 2017-08-30 16:42:54 25919 [Note] Plugin 'FEDERATED' is disabled. ./bin/mysqld: Table 'mysql.plugin' doesn't exist 2017-08-30 16:42:54 25919 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 2017-08-30 16:42:54 25919 [Note] InnoDB: Using atomics to ref count buffer pool pages 2017-08-30 16:42:54 25919 [Note] InnoDB: The InnoDB memory heap is disabled 2017-08-30 16:42:54 25919 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2017-08-30 16:42:54 25919 [Note] InnoDB: Memory barrier is not used 2017-08-30 16:42:54 25919 [Note] InnoDB: Compressed tables use zlib 1.2.3 ... ...
可以尝试:./scripts/mysql_install_db —user=mysql --basedir=/data/apps/mysql-5.6.26 --datadir=/data/apps/mysql-5.6.26/data
参考:
单独安装php的mysql和mysqli扩展
Linux为已编译好PHP添加 Mysql(PHP编译好后添加Mysql扩展)安装 PHP
安装PHP依赖库,PHP依赖库挺多的,根据自己需要安装对应的即可,简单安装几个常用的。yum install -y libjpeg libjpeg-devel libpng libpng-devel curl curl-devel
访问 PHP官网,下载源码包,php-5.6.31 :cd /home/xiaowujun/softs/ wget https://secure.php.net/distributions/php-5.6.31.tar.gz[/code]
解压, 配置,编译,安装:tar -zxf php-5.6.31.tar.gz cd php-5.6.31 ./configure --prefix=/data/apps/php-5.6.31 --with-config-file-path=/data/apps/php-5.6.31/etc --with-php-config=/data/apps/php-5.6.31/bin/php-config --with-mysqli=/data/apps/mysql-5.6.26/bin/mysql_config --enable-mbstring --with-mhash --with-mysql=/data/apps/mysql-5.6.26 --enable-fpm --with-openssl --with-zlib make && make install
配置 PHP:# 配置文件 cp php.ini-development /data/apps/php-5.6.31/etc/php.ini # php-fpm 服务 cp /data/apps/php-5.6.31/etc/php-fpm.conf.default /data/apps/php-5.6.31/etc/php-fpm.conf cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod +x /etc/init.d/php-fpm
需要着重提醒的是,如果文件不存在,则阻止 Nginx 将请求发送到后端的 PHP-FPM 模块, 以避免遭受恶意脚本注入的攻击 :vi /data/apps/php-5.6.31/etc/php.ini
定位到 cgi.fix_pathinfo= 并将其修改为如下所示:cgi.fix_pathinfo=0
启动PHP:/data/apps/php-5.6.31/sbin/php-fpm
参考:
php官方文档
php编译安装以及遇到的问题
Linux 下编译安装 PHP 5.6设置开机启动 (重要 *)
Nginx
MySQL
PHP测试程序
创建,编辑 phpinfo.php 测试文件:vi /data/webs/www.xiaowujun.com/phpinfo.php< b637 /code>
输入:<?php phpinfo(); ?>
或者:echo "<?php phpinfo(); ?>" >> /data/webs/www.xiaowujun.com/phpinfo.php
配置nginx.conf文件,解析域名:vi /data/apps/nginx-1.8.1/conf/nginx.conf
修改默认的 location 块,使其支持 .php 文件:listen 80; server_name www.xiaowujun.com; location / { root /data/webs/www.xiaowujun.com; index index.php index.html index.htm; }
下一步配置来保证对于 .php 文件的请求将被传送到后端的 PHP-FPM 模块, 取消默认的 PHP 配置块的注释,并修改为下面的内容:location ~* \.php$ { fastcgi_index index.php; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; }
重新加载 Nginx:/data/apps/nginx-1.8.1/sbin/nginx -s reload
测试:
浏览器访问: http://www.xiaowujun.com/phpinfo.php
参考:
在Linux系统中安装LNMP出现的错误总结
Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)源码编译安装
相关文章推荐
- CentOS 7源码编译安装PHP5.6和Nginx1.7.9及MySQL(搭建LNMP环境)
- Linux\CentOS系统下的服务器搭建,下载编译环境,安装vsFtpd、nginx、MySQL、JDK、Tomcat、PHP
- LNMP(linux+nginx+mysql+php)环境的编译安装
- LNMP架构的搭建(linux+nginx+mysql+php源码安装 )+Discuz论坛的搭建
- linux下搭建LNMP(linux+nginx+mysql+php)环境之php5.4安装
- LNMP(Linux+Nginx+Mysql+PHP---源码)环境搭建
- linux下搭建LNMP(linux+nginx+mysql+php)环境之nginx安装
- linux 源码包安装LNMP(linux+nginx+mysql+php)服务器环境
- lnmp 环境搭建 源代码包安装 linux,nginx,mysql,php
- Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)源码编译安装 环境介绍
- lnmp源码编译安装Linux(6.4)+Nginx(1.4.1)+Mysql(5.6.12)+Php(5.5.0)
- linux下搭建LNMP(linux+nginx+mysql+php)环境之mysql5.5安装
- 基于CentOS 6.8平台最新源代码包编译安装LNMP环境搭建(Nginx+MySQL+PHP)
- Linux\CentOS系统下的服务器搭建,下载编译环境,安装vsFtpd、nginx、MySQL、JDK、Tomcat、PHP
- LNMP:Linux+ Nginx+Mysql+Php编译安装
- CentOS-6.4 源码包编译安装LNMP +Discuz开源论坛(mysql-5.6.14 +PHP-5.4.21+nginx-1.4.2)
- CentOS6.x编译安装LNMP(Linux+Nginx+Mysql+PHP)
- 全新安装Mac OSX 开发者环境 同时使用homebrew搭建 PHP,Nginx ,MySQL,Redis,Memcache ... ... (LNMP开发环境)
- 从零搭建LNMP环境(一) - 编译源码安装PHP
- CentOS 5.5安装Nginx、PHP(FastCGI)、MySQL --搭建LNMP环境安装Wordpress