举杯邀月

linux(centos、ubuntu)源码编译安装ngixn、php、mysql

摘要:LNMP是指一组通常一起使用来运行动态网站或者服务器的自由软件名称首字母缩写。L指Linux,N指Nginx,M一般指MySQL,也可以指MariaDB,P一般指PHP;今天整理了下centos源码安装ngixn、php、mysql

安装依赖

# centos
yum update
yum -y install  gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel* make cmake  openssl openssl-devel curl-devel libjpeg-devel libpng-devel freetype-devel pcre-devel

# ubuntu
apt-get install cmake  bison libncurses5-dev libpcre3-dev zlib1g-dev gcc automake autoconf libtool make build-essential  libssl-dev libcurl4-gnutls-dev
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6
1
2
3
4
5
6

等待安装完成后再安装环境

mysql安装

我们这里安装的mysql5.7.20
1、下载mysql

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
1
1
1
1

2、解压并进行编译

tar zxvf mysql-5.7.20.tar.gz
cd mysql-5.7.20
mkdir -p /usr/local/webserver  # 新建安装目录
mkdir -p /home/data/mysql      # 数据库存放地址
cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql  -DMYSQL_DATADIR=/home/data/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=/tmp/mysqld.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=/usr/local/webserver/boost 
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

3、安装

make && make install
1
1
1
1

4、创建用户并授权

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/webserver/mysql
cd /usr/local/webserver/mysql/support-files
cp mysql.server /etc/rc.d/init.d/mysql  # 复制mysql服务文件
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

5、初始化数据库

/usr/local/webserver/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/webserver/mysql --datadir=/home/data/mysql/data
# 配置 --initialize-insecure 为不设置密码
# 设置密码使用 --initialize
1
2
3
1
2
3
1
2
3
1
2
3

6、激动人心的启动

chkconfig --add mysql
chkconfig mysql on    # 添加开机启动
service mysql start   # 启动mysql服务
1
2
3
1
2
3
1
2
3
1
2
3

php安装

1、下载PHP

wget https://www.php.net/distributions/php-7.3.12.tar.gz
1
1
1
1

2、解压并进行编译

tar zxvf php-7.3.12.tar.gz
./configure  --prefix=/usr/local/webserver/php --with-config-file-path=/usr/local/webserver/php/etc --with-openssl --with-curl --with-pdo-mysql=/usr/local/webserver/mysql --enable-mbstring --enable-sockets --enable-xml --enable-fpm --with-mhash --with-xmlrpc --enable-zip --enable-soap --enable-ftp --without-pear  --with-zlib --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir
1
2
1
2
1
2
1
2

3、安装php

make && make  install
1
1
1
1

安装完成后会有一句类似以下的输出,这是php扩展的存放位置

Installing shared extensions:    /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20160303/
1
1
1
1

4、复制php.ini配置文件

cp /home/software/php-7.3.12/php.ini-production /usr/local/webserver/php/etc/php.ini
1
1
1
1

5、php.ini的配置 (不需要可以跳过)

# 模块
extension_dir="[刚才安装成功后输出的扩展路径]"
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=10

# 设置时区: 找到`date.timezone`,去掉注释并修改为:
date.timezone = "Asia/Shanghai"
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9

6、复制php-fpm服务文件 www.conf文件 php-fpm.conf文件

cp /home/software/php-7.3.12/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod -R 777 /etc/init.d/php-fpm

cd /usr/local/webserver/php/etc/php-fpm.d/
cp www.conf.default www.conf

cd /usr/local/webserver/php/etc/
cp php-fpm.conf.default php-fpm.conf
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8
1
2
3
4
5
6
7
8

7、又是激动人心的启动

chkconfig --add php-fpm
chkconfig php-fpm on      # 添加开机启动
service php-fpm start     # 启动php服务
1
2
3
1
2
3
1
2
3
1
2
3

nginx的安装

1、下载并解压

wget http://nginx.org/download/nginx-1.12.2.tar.gz
tar zxvf nginx-1.12.2.tar.gz
1
2
1
2
1
2
1
2

2、创建用户和目录

groupadd www
useradd -r -g www www
mkdir -p  /home/wwwroot
chmod +w /home/wwwroot
chown -R www:www  /home/wwwroot
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5

3、添加echo模块 不需要可以跳过

wget https://github.com/openresty/echo-nginx-module/archive/v0.61.tar.gz
tar zxvf v0.61.tar.gz
1
2
1
2
1
2
1
2

4、编译并安装

如果需要echo模块,编译参数需要追加 --add-module=[echo模块路径]。其余参数可根据需要追加

./configure --user=www --group=www --prefix=/usr/local/webserver/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
make && make install
1
2
1
2
1
2
1
2

5、又是一个激动人心的启动

/usr/local/webserver/nginx/sbin/nginx
1
1
1
1

nginx报错处理

:nginx: [error] open() “/usr/local/webserver/nginx/logs/nginx.pid” failed (2: No such file or directory)

/usr/local/webserver/nginx/sbin/nginx -c /usr/local/webserver/nginx/conf/nginx.conf
/usr/local/webserver/nginx/sbin/nginx -s reload
1
2
1
2
1
2
1
2

将启动命令放入 /etc/rc.d/rc.local 文件可以实现开机自启动

每一次的激动的启动都有可能会出现激动的错误,慢慢来吧,哈哈

作者:举杯邀月

出处: http://www.hug-code.cn/archives/5fc0b021dc70d.html

2020-03-07 标签: linuxnginxmysqlphp