lnmp自编译安装,详细解释编译参数以及配置

3 篇文章 0 订阅
3 篇文章 0 订阅

以下整合成shell脚本便于观看,不是复制直接执行的,而且配置参数根据自身服务器的需求进行设置

#编译安装通用参数
#--prefix=<path> Nginx安装的根路径,所有其它路径都要依赖该选项
#--sbin-path=<path> 指定nginx二进制文件的路径,没指定的话 这个路径依赖--prefix选项
#--conf-path=<path> 如果在命令行未指定配置文件,那么将会通过这里指定的路径,nginx将会去那里查找他的配置文件
#--error-log-path=<path> 错误文件路径,nginx写入错误日志文件地址,除非有其他配置
#--error-log-path=<path> 错误文件路径,nginx写入错误日志文件地址,除非有其他配置
#--pid-path=<path> 	nginx master进程pid写入的文件位置,通常在var/run下
#--lock-path=<path> 	共享存储器互斥锁文件路径
#--user=<user> worker进程运行的用户
#--group=<group> worker进程运行的组


#安装nginx

#依赖安装
yum -y install  gcc gcc-c++ automake pcre pcre-devel zlip zlib-devel openssl openssl-devel
cd /usr/local/src/
#下载nginx安装包
wget http://nginx.org/download/nginx-1.8.1.tar.gz

#解压安装包
tar  xvf nginx-1.8.1.tar.gz

#配置文件
cd nginx-1.8.1
./configure  --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/var/log/nginx/error.log  --http-log-path=/var/log/nginx/access.log  --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock  --user=www --group=www --with-http_ssl_module --with-http_stub_status_module --with-http_gzip_static_module --http-client-body-temp-path=/var/tmp/nginx/client/ --http-proxy-temp-path=/var/tmp/nginx/proxy/ --http-fastcgi-temp-path=/var/tmp/nginx/fcgi/ --http-uwsgi-temp-path=/var/tmp/nginx/uwsgi --http-scgi-temp-path=/var/tmp/nginx/scgi --with-pcre


#nginx 下边显示了http模块有效的配置选项,从激活perl模块到临时目录的位置
#--without-http-cache 在使用upstream模块时,nginx能够配置本地缓存内容,此选项可禁用缓存
#--with-http_perl_module 这个模块允许nginx使用SSI调用perl或直接执行perl(使用会降低性能)
#--with-perl_modules_path=PATH 设置perl模块路径(perl解析器路径)
#--with-perl_modules_path=PATH 设置perl模块路径
#--http-log-path=PATH 设置access log文件路径
#--http-client-body-temp-path=PATH 设置客户端请求临时文件路径,如果WebDAV启用,推荐设置该路径为同一文件系统上的目录作为最终的目的地
#--http-proxy-temp-path=PATH  代理设置后,设置http proxy临时文件路径
#--http-fastcgi-temp-path=PATH 设置http fastcgi临时文件路径
#--http-fastcgi-temp-path=PATH set path to store http fastcgi temporary files
# --http-scgi-temp-path=PATH set path to store http scgi temporary files
#http模块配置选项
#--with-http_ssl_module 如果需要对流量加密.可使用此选项,在urls中开始部分将会是https(需要openssl库)
#--with-http_realip_module 允许ngx_http_realip_module模块(mod_rpaf) 此模块支持显示真实来源IP地址,主要用于NGINX做前端负载均衡服务器使用,如果你的nginx在七层负载均衡器或者其它设备之后,它们将Http头中的客户端ip地址传递,这时需要启用此模块,在多个客户处于一个ip地址的情况下使用
#--with-http_addition_module 作为一个输出过滤器,使你能够在请求经过一个location前或后时在该location本身添加内容
#--with-http_xslt_module 这个模块是一个过滤器,它可以通过XSLT模板转换XML应答
#--with-http_image_filter_module 图像过滤器,在将图像投递到客户之前进行处理(需要libgd库)
#--with-http_geoip_module 使用该模块,能够设置设置个中变量以便在配置区段中使用
#--with-http_sub_module 允许ngx_http_sub_module模块 这个模块可以能够在nginx的应答中搜索并替换文本
#--with-http_dav_module 允许ngx_http_dav_module模块(mod_dav)为文件和目录指定权限,限制不同类型的用户对于页面有不同的操作权限
#--with-http_flv_module 允许ngx_http_flv_module模块(mod_flvx)这个模块支持对FLV(flash)文件的拖动播放
#--with-http_mp4_module 支持H.264/AAC文件为伪流媒体
#--with-http_gzip_static_module 允许ngx_http_gzip_static_module模块(mod_dflate)这个模块在一个预压缩文件传送到开启Gzip压缩的客户端之前检查是否已经存在以“.gz”结尾的压缩文件,这样可以防止文件被重复压缩
#--with-http_gunzip_module对于不支持gzip编码的客户,该模块用于为客户解压缩预压缩内容
#--with-http_random_index_module 允许ngx_http_random_index_module模块(mod_autoindex),从目录中选择一个随机主页
#--with-http_secure_link_module 该模块提供一种机制,它会将一个哈希值链接到一个url中,因此,只有那些使用正确的密码能够计算链接
#--with-http_stub_status_module 这个模块可以取得一些nginx的运行状态,如果是工业状况,可以直接取消  输出的状态信息科使用RRDtool或类似的工具绘制成图
# ./configure --with-http_ssl_module --with-http_realip_module --with-http_geoip_module --with-http_stub_status_module   建议配置
#安装目录
make&&make install

#开机自启动
vi /etc/rc.local
#插入 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf &

#编译安装mysql
#安装依赖
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
cd /usr/local/src/
#下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
#解压安装包
tar -xf mysql-boost-5.7.20.tar.gz
tar -xf mysql-5.7.20.tar.gz

#创建用户并授权
useradd -M -s /sbin/nologin mysql
mkdir -p /usr/local/mysql/mydata
mkdir -p /usr/local/mysql/conf
chown -R mysql:mysql /usr/local/mysql
##将该文件名修改为.bak作为备份,因为启动MySQL时默认会读取该文件里的内容
mv /etc/my.cnf /etc/my.cnf.bak

cd mysql-5.7.20
cd /usr/local/src/mysql-5.7.20/
 cmake -DCMAKE_INSTALL_PREFIX=cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/mydata -DSYSCONFDIR=/usr/local/mysql/conf -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost
#参数详解:
#-DCMAKE_INSTALL_PREFIX=/usr/local/mysql\    #安装路径
#-DMYSQL_DATADIR=/usr/local/mysql/data   \    #数据文件存放位置
#-DSYSCONFDIR=/etc             \    #my.cnf路径
#-DWITH_MYISAM_STORAGE_ENGINE=1    \   #支持MyIASM引擎
#-DWITH_INNOBASE_STORAGE_ENGINE=1    \   #支持InnoDB引擎
#-DWITH_READLINE=1                \    #快捷键功能
#-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock      \    #连接数据库socket路径
#-DMYSQL_TCP_PORT=3306                \    #端口
#-DENABLED_LOCAL_INFILE=1           \   #允许从本地导入数据
#-DWITH_PARTITION_STORAGE_ENGINE=1        \   #安装支持数据库分区
#-DEXTRA_CHARSETS=all                  \    #安装所有的字符集
#-DDEFAULT_CHARSET=utf8               \    #默认字符
#-DDEFAULT_COLLATION=utf8_general_ci##--------------------

#设置开机自启动
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
cp /usr/local/mysql/bin/mysql /usr/bin/mysql

#初始化MySQL 此操作后会在控制台生成一个临时密码记得记录
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/mydata

#配置my.cnf
cp /etc/my.cnf.bak /usr/local/mysql/conf/my.cnf
vim /usr/local/mysql/conf/my.cnf
#配置如下
[mysqld]
datadir=/usr/local/mysql/mydata                 ##数据库存放目录路径
socket=/usr/local/mysql/mysql.sock              ##UNIX socket 目录路径
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql/mydata/mysql.err     ##错误日志路径(名称可以定义为其他,一般为主机名,不过这里我定义为mysql.err)
pid-file=/usr/local/mysql/mydata/mysql.pid      ##pid路径(名称可以定义为其他,一般为主机名,不过这里我定义为mysql.pid)
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

#启动MySQL服务
service mysqld start

#修改密码 需要输入上述的临时密码
SET PASSWORD = PASSWORD('00000000');

#配置mysql5.7版本的启动脚本(选)
cat /usr/lib/systemd/system/mysql.service
[Unit]
Description=MariaDB server and services
After=syslog.target
After=network.target

[Service]
Type=simple
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --basedir=/usr/local/mysql
TimeoutSec=300
PrivateTmp=false

[Install]
WantedBy=multi-user.target
#授权
chmod a+x /usr/lib/systemd/system/mysql.service
systemctl start mysql




#安装php

#安装PHP依赖
yum -y install php-mcrypt libmcrypt libmcrypt-devel  autoconf  freetype gd libmcrypt libpng libpng-devel libjpeg libxml2 libxml2-devel zlib curl curl-devel re2c net-snmp-devel libjpeg-devel php-ldap openldap-devel openldap-servers openldap-clients freetype-devel gmp-devel

#下载PHP源码包
wget http://cn2.php.net/distributions/php-7.2.6.tar.gz

#解压压缩包
tar zxf php-7.2.6.tar.gz -C /usr/local/src/
cd /usr/local/src/php-7.2.6/

#生成配置文件
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysqli \
--with-pdo-mysql \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-curl \
--with-gd \
--with-gmp \
--with-zlib \
--with-xmlrpc \
--with-openssl \
--without-pear \
--with-snmp \
--with-gettext \
--with-mhash \
--with-libxml-dir=/usr \
--with-ldap \
--with-ldap-sasl \            #如果不添加这两项,要是安装zabbix监控时候,会有提示还得需要再次编译,如果不安装zabbix,也可以忽略
--with-fpm-user=www \
--with-fpm-group=www \
--enable-xml \
--enable-fpm  \
--enable-ftp \
--enable-bcmath \
--enable-soap \
--enable-shmop \
--enable-sysvsem \
--enable-sockets \
--enable-inline-optimization \
--enable-maintainer-zts \
--enable-mbregex \
--enable-mbstring \
--enable-pcntl \
--enable-zip \
--disable-fileinfo \
--disable-rpath \
--enable-libxml \
--enable-opcache \
--enable-mysqlnd \
#如果报错解决方法
configure: error: Cannot find ldap libraries in /usr/lib.
#在重新配置
cp -frp /usr/lib64/libldap* /usr/lib/

#编译并安装
make
#可能报以下错误 没有的话跳过
/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup'
/usr/lib64/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1
#此时修改下Makefile文件
vim Makefile
#搜索EXTRA_LIBS 在行位加上-llber

make&make isntall

#配置php文件
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/src/php-7.2.6/php.ini-production /usr/local/php/etc/php.ini

#设置启动脚本
 cp /usr/local/src/php-7.2.6/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
/etc/init.d/php-fpm start
#安装

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值