lnmp环境搭建

环境要求:mysql Server version: 5.7.18-log Source distribution         Redis server v=3.2.8           nginx version: nginx/1.12.2      PHP 5.6.31 

一,安装nginx  

***************

nginx的configure参数中的--with-openssl已经指向了openssl的源代码了,这个时候需要修改nginx源码下的auto/lib/openssl中的conf文件
即指定nginx所需openssl中的头文件和库文件的位置

******openssl安装***********
centos7.2默认是安装了opensll软件包的,但是部署个别服务时,由于版本太低。会影响服务的正常部署。只能使用源码安装提高openssl软件版本。
因为之前有openssl软件包,所以要先移除之前版本:
删除旧版本: yum remove -y openssl openssl-devel
源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装: yum -y install perl perl-devel
现在新版本openssl: wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz
解压源码包并进入解压后的目录: tar zxf openssl-1.0.2l.tar.gz cd openssl-1.0.2l
配置并编译安装: ./config -fPIC --prefix=/usr/local/openssl/ enable-shared && make && make install
注释: --prefix:指定安装目录 -fPIC:编译openssl的静态库 enable-shared:编译动态库
加入环境变量,以便方便使用openssl命令:
echo "export PATH=\$PATH:/usr/local/openssl2/bin" >>/etc/profile && source /etc/profile
将库文件路径写入/etc/ld.so.conf文件中,方便调用库文件
echo "include /usr/local/openssl2/lib" >> /etc/ld.so.conf && ldconfig

*********


线上的nginx的参数文件需要配置,php这边有自定义参数(/usr/local/nginx/conf/fastcgi.conf)

root /home/wwwroot//dmc/dmcadminmvc2/web;
index index.php index.html;
include fastcgi.conf; ###############(php自定义参数文件)
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
#####fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;

下载openssl tar包
wget https://www.openssl.org/source/openssl-1.0.1g.tar.gz
1,nginx依赖包
yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
2,下载nginx源码包
wget https://nginx.org/download/nginx-1.12.2.tar.gz
###推荐使用默认配置##./configure --prefix=/usr/local/nginx
./configure --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module
make && make install
启动、停止nginx
cd /usr/local/nginx/sbin/
./nginx
./nginx -s stop
./nginx -s quit
./nginx -s reload
创建用户
groupadd www
useradd -M -g www -s /sbin/nologin www

二,php安装
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-devel jemalloc jemalloc-devel
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel

 yum install libicu-devel

wget http://cn2.php.net/get/php-5.6.31.tar.gz/from/this/mirror
tar -xf mirror.1


./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --enable-intl --with-xsl
###./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-config-file-scan-dir=/usr/local/php/conf.d --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt=/usr/local/libmcrypt/include/mcrypt.h --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-opcache --enable-intl --with-xsl

发现缺少libmcrypt
###./configure --prefix=/usr/local/php-fpm --enable-fpm --with-zlib --with-pdo-mysql --enable-mbstring --with-gd --with-png-dir=/usr/lib64 --with-jpeg-dir=/usr/lib64 --with-freetype-dir=/usr/lib64
##wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz
###./configure --prefix=/usr/local/libmcrypt

make && make install
****************************
4,附加
mcrypt.h not found. Please reinstall libmcrypt”的解决方法
2
centos源不能安装libmcrypt-devel,由于版权的原因没有自带mcrypt的包

有两种方法解决,一种是使用第三方源,这样还可以使用yum来安装,简单方便,坏处是第三方源多少有中不可靠的感觉。

解决办法一
1、安装第三方yum源
wget http://www.atomicorp.com/installers/atomic
sh ./atomic
2、使用yum命令安装
yum install php-mcrypt libmcrypt libmcrypt-devel

解决办法二、
使用php mcrypt 前必须先安装Libmcrypt

libmcrypt源码安装方法:

cd /usr/local/src
wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure --prefix=/usr/local
make
make install

************************
根据线上编译参数好多警告

三,配置
到php安装目录 cp php.ini-development /etc/php.ini

cd /usr/local/php/etc && cp /etc/php.ini /usr/local/php/etc

cp php-fpm.conf.default php-fpm.conf

在nginx根目录写info.php
1,修改nginx配置文件 cat /usr/local/nginx/conf/nginx.conf
user www;

location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi_params;
}

2修改php-fpm.conf

user = www
listen = 127.0.0.1:9000
3,修改php.ini 默认可以

 

三 二进制安装mysql ()卸载数据库: yum -y remove mari* rm -rf /var/lib/mysql/*)
*********************
tar -xf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
281 ls
282 tar -xf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
283 mkdir /usr/local/mysql
284 tar -xf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
287 cd mysql-5.7.21-linux-glibc2.12-x86_64/
293 mv mysql Mysql
294 ln -s /usr/local/Mysql/mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql
298 mkdir /data
299 chown -R mysql.mysql /usr/local/mysql
300 chown -R mysql.mysql /data
301 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
302 ./bin/mysqld --defaults-file=/etc/my.cnf --initialize
303 vim /tmp/mysqlpasswd
304 /etc/init.d/mysqld start
305 chown -R mysql:mysql /usr/local/mysql/
306 /etc/init.d/mysqld start
307 history
****************


mysql使用的glibc进行开发的。glibc库是一个底层api,所以只要是linux,都会有glibc库。所以,mysql安装不需要考虑环境是否符合要求。移植性很方便。直接将编译好的二进制代码复制到另外一个机器上,也是可以用的。
A temporary password is generated for root@localhost: +Ehggj)Lq6vF
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz
下载依赖包
yum -y install perl-Module-Install.noarch
yum -y install libaio libaio-devel
yum -y install gcc gcc-c++ make cmake automake autoconf libxml2 libxml2-devel zlib zlib-devel ncurses ncurses-devel

useradd -s /sbin/nologin -M mysql
mkdir /opt/mysql/
tar zxf /opt/mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz -C /opt/mysql/
ln -s /opt/mysql/mysql-5.7.21-linux-glibc2.12-x86_64 /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql/
、创建配置相关文件
8、初始化数据库
cd /usr/local/mysql/ && ./bin/mysqld --defaults-file=/etc/my.cnf --initialize
或者初始化:[root@dbking mysql]# ./scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql
***bin/mysqld --initialize-insecure--user=mysql --basedir=/data/mysql_root/mysql-5.7.14 --datadir=/data/mysql_root/data/3307/初始化成功了。这里说明下,初始化参数我使用了--initialize-insecure,这样不会设置初始化root密码,如果是 --initialize的话,会随机生成一个密码
mysql5.7.7及以上做了很多改变,5.7.7以前安装方法和以前差不多,初始化也保留了mysql_install_db,5.7.7以后则去掉了该脚本,使用了-initialize 或者 --initialize-insecure 参数作为初始化。
9、创建启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start 或者启动数据库:/usr/local/mysql/bin/mysqld --user=mysql &或者 /usr/local/mysql/bin/mysqld_safe --user=mysql &
10、创建快速启动的环境变量

echo "export PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
source /etc/profile

11、查看MySQL初始密码

grep "password" /data/mysql/mysql3306/data/error.log
2018-02-01T05:44:04.334666Z 1 [Note] A temporary password is generated for root@localhost: usXXw5x.zzfw(默认登录密码)

12、修改初始密码

初始密码为: q=usXXw5x.zzfw 每次初始化密码都不会相同;
登录数据库修改密码为:123456

mysql -uroot -p初始密码
mysql> alter user user() identified by '123456';
或者:
mysql> SET PASSWORD=PASSWORD('123456');
mysql> flush privileges;

说明:此处的密码更改为123456,建议密码复杂化。

或者使用下面的命令:
PASSWD=$(grep 'password is' /data/mysql/mysql3306/data/error.log | awk '{print $NF}')

mysql -uroot -p"$PASSWD" --connect-expired-password -e "alter user user() identified by '123456';"

至此,MySQL数据库的二进制安装完成,您将进入一个暂新的数据世界。

 


五,redis安装
https://www.cnblogs.com/laohuamao/archive/2017/03/07/6517256.html
wget http://download.redis.io/releases/redis-3.2.8.tar.gz
make MALLOC=libc
make install
为了正常使用,还必须进行下一步操作 cd utils ./install_server.sh一路下一步,安装完成后,产生以下文件 ./redis-cli
yum -y install php-pecl-redis
vim /etc/php.ini #编辑配置文件,在最后一行添加以下内容添加extension="redis.so"
五,调试

1mysql授权要全面
2,php的配置文件要找对,查看info.php(参数不对,一直报错)

posted @ 2018-07-11 14:59  jianxiaofeng  阅读(93)  评论(0)    收藏  举报