LNMP 源码安装 超详细笔记记录 PHP7 MariaDB 10.1.12
Posted 庆小伟
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LNMP 源码安装 超详细笔记记录 PHP7 MariaDB 10.1.12相关的知识,希望对你有一定的参考价值。
LNMP 源码安装 超详细笔记记录
php 7.04 版本
mariaDB 10.1.12 版本
首先安装nginx
一般编译nginx时,都要先安装pcre、zlib等外部支持程序,然后编译安装nginx时指定这些外部支持程序的位置,这样nginx在每次启动的时候,就会去动态加载这些东西了。
下面介绍的是另一种方式,即将这些程序编译到nginx里面去,这样nginx启动时就不会采用动态加载的方式去load。从古谱中可获知,这种方式会比动态加载有更高的效率。
首先 安装 yum install openssl-devel pcre-devel zlib-devel
OpenSSL 库 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
支持https协议
openssl-fips是符合FIPS标准的Openssl。
联邦信息处理标准(Federal Information Processing Standards,FIPS)是一套描述文件处理、加密算法和其他信息技术标准(在非军用政府机构和与这些机构合作的政府承包商和供应商中应用的标准)的标准。
下载openssl
解压 tar -zxvf openssl-1.0.1s.tar.gz
PCRE 库 PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。
支持 rewrite
下载 PCRE
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre2-10.20.tar.gz
解压 tar -zxvf pcre2-10.20.tar.gz
zlib库 zlib是提供数据压缩用的函式库 对HTTP包的内容作gzip压缩
支持gzip
下载zlib
解压 tar -zxvf zlib-1.2.8.tar.gz
安装 nginx
useradd nginx -M -s /sbin/nologin #给nginx服务器创建后台进程管理用户
下载nginx
wget nginx.org/download/nginx-1.9.12.tar.gz
解压 tar -zxvf nginx-1.9.12.tar.gz
编译到 /usr/local/nginx 下
./configure --prefix=/usr/local/nginx \
--conf-path=/usr/local/nginx/conf/nginx.conf \
--user=nginx \
--group=nginx \
--with-pcre=/usr/local/src/pcre-8.37 \
--with-zlib=/usr/local/src/zlib-1.2.8 \
--with-openssl=/usr/local/src/openssl-1.0.1s \
--with-threads \
--with-http_stub_status_module \
--with-http_ssl_module \
--with-http_gzip_static_module
//--with-pcre=/usr/local/pcre 源码路径不是安装路径
//--with-zlib=/usr/local/zlib 源码路径不是安装路径
//--with-openssl=/usr/local/openssl 源码路径不是安装路径
// --user=nginx –group=nginx 设置允许nginx允许的用户和组为nginx
// --prefix=/usr/local/nginx/ 设置nginx安装路径
// --with-http_stub_status_module 安装允许状态模块
// --with-http_ssl_module 安装ssl模块
// --with-http_gzip_static_module 支持 在线实时压缩输出数据流
启动服务
/usr/local/nginx/sbin/nginx
查看服务是否启动
netstat -tunlp | grep :80
安装mariaDB
添加用户添加组
groupadd -r mysql
useradd -g mysql -r -M -s /sbin/nologin mysql
这个下载后 名字变为了index.html 重命名下
mv index.html mariadb-10.1.12.tar.gz
解压
tar -zxvf mariadb-10.1.12.tar.gz
编译
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DINSTALL_DATADIR=/usr/local/mysql/data \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DEXTRA_CHARSETS=all \
-DENABLED_LOCAL_INFILE=1
如果出现这样的错误
gmake: *** No targets specified and no makefile found. Stop
原因没有装 ncurses 库
yum install ncuses ncuses-devel
其他的缺少什么依赖库 就yum install
cd /usr/local/mysql
chown mysql.root * -R
/scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
cp support-files/my-large.cnf /etc/my.cnf
vi /etc/my.cnf 添加
datadir=/usr/local/mysql/data
cp support-files/mysql.server /etc/init.d/mysqld
添加开机启动
chkconfig --add mysqld
chkconfig mysqld on
开启Mysql
service mysqld start
查看服务是否启动
netstat -tunlp | grep :3306
进入mysql
mysql
会报错,因为 /usr/bin 下找不到mysql
添加软连接
ln -s /usr/local/mysql/bin/mysql /usr/bin
其他错误类似
登录mysql 删除匿名登录用户
use mysql
delete from user where user <> ‘root‘ or host <> ‘localhost‘;
设置密码
set password for ‘root‘@‘localhost‘ = password(‘qing123‘);
资料
安装php
首先安装依赖库
libxml Libxml 函数和常量与 SimpleXML、XSLT 以及 DOM 函数一起使用 这些函数需要 libxml 包
libmcrypt Mcrypt扩展库可以实现加密解密功能 支持一些加密函数
mhash
mcrypt
zlib
openssl
freetype
libjpeg
libpng
libgd 图像处理函数 需要freetype、jpeg、png 支持
curl 支持 curl函数
libiconv 支持 iconv 函数
下面这些后期再装
memcached
redis
xhprof 性能测试工具
threads 多进程
swoole 多线程
laravel
开始 为安装php 做准备
安装 libxml2
下载 libxml2 wget ftp://xmlsoft.org/libxml2/libxml2-git-snapshot.tar.gz
tar -zxvf libxml2-git-snapshot.tar.gz
安装 到/usr/local/libxml 下
yum install libxml2-devel
./configure --prefix=/usr/local/libxml
make && make instlal
如果出现了这些错误 libxml.c:3915: 错误:‘libxmlMethods’未声明(在此函数内第一次使用)
yum install python-devel 可解决
接着 make clean 清空下之前的编译 再重新编译并 make instlal 其他的库 遇到编译失败均需要 make clean 清空下之前的编译
安装 libmcrypt
下载 wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt/libmcrypt-2.5.7.tar.gz
解压 tar -zxvf libmcrypt-2.5.7.tar.gz
yum install libmcrypt-devel
./configure
make && make install
安装 mhash
mv download\?source\=files mhash-0.9.9.9.tar.gz
tar -zxvf mhash-0.9.9.9.tar.gz
./configure
make && make instlal
安装 mcrypt
wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/mcrypt-2.6.4.tar.gz
tar -zxvf mcrypt-2.6.4.tar.gz
设置下环境变量 否则找不到 libmcrypt mhash
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
./configure --prefix=/usr/local/mcrypt
make && make install
安装zlib
./configure --prefix=/usr/local/zlib
make && make install
安装 openssl
./config --prefix=/usr/local/openssl
make && make install
安装 freetype
yum install freetype-devel
./configure --prefix=/usr/local/freetype
make && make install
安装libpng
wget ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng-1.6.21.tar.gz
解压 安装
./configure --prefix=/usr/local/libpng
make && make install
安装libjpeg
解压 安装
./configure --prefix=/usr/local/libjpeg
安装libgd库
下载 这个很慢,建议FQ 然后上传到服务器上面去
解压 安装
./configure --prefix=/usr/local/libgd \
--with-zlib=/usr/local/zlib/ \
--with-freetype=/usr/local/freetype/ \
--with-png=/usr/local/libpng/ \
--with-jpeg=/usr/local/jpeg/
安装curl
解压 安装
./configure --prefix=/usr/local/curl
make && make install
安装 libiconv
解压 安装
./configure --prefix=/usr/local/libiconv
make && make install
解压 安装
./configure --prefix=/usr/local/libXpm
make && make install
安装 php
yum install libXpm libXpm-devel 不然make时报错
rpm -ql libXpm 下看看 libXpm 装在哪 下面 --with-xpm-dir=/path
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mcrypt=/usr/local/mcrypt \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-pdo-mysql=/usr/local/mysql \
--with-iconv-dir=/usr/local/libiconv \
--with-zlib-dir=/usr/local/zlib \
--with-libxml-dir=/usr/local/libxml \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local/libpng \
--with-freetype-dir=/usr/local/freetype \
--with-gd=/usr/local/libgd \
--with-curl=/usr/local/curl \
--with-xpm-dir=/usr/local/libXpm \
--enable-xml \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--enable-ftp \
--enable-gd-native-ttf \
--with-openssl \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--without-pear \
--with-gettext \
--enable-session \
--enable-opcache
make && make install
cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
开启opcache
vim /usr/local/php/etc/php.ini
zend_extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/opcache.so
开启 php-fpm
service php-fpm start
查看下php 版本信息
/usr/local/php/bin/php -v
整个nginx 和 php
vim /usr/local/nginx/conf/nginx.conf
这里
location / {
root html;
index index.html index.htm;
}
修改为
location / {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
重启nginx 服务
/usr/local/nginx/sbin/nginx -s reload
编辑个php文件,然后用phpinfo();测试下
接下来在网站访问 其他类型文件时会出现错误
查询error.log日志
FastCGI sent in stderr: "Access to the script ‘/usr/local/nginx/html/index.html‘ has been denied (see security.limit_extensions)" while reading 。。
需要修改 php-fpm 的配置文件
我的是 在/usr/local/php/etc/php-fpm.conf 里面包含了www.conf配置
找到security.limit_extensions把他修改为:
security.limit_extensions=.php .html .js .css .jpg .jpeg .gif .png .htm#(常用的文件扩展名)
重启 php-fpm 服务
现在你可以嗨了
以上是关于LNMP 源码安装 超详细笔记记录 PHP7 MariaDB 10.1.12的主要内容,如果未能解决你的问题,请参考以下文章