CentOS7.2 编译安装LNMP

2019-01-19  本文已影响0人  説詩

1 先关闭防火墙

CentOS 7.0开始默认使用的是firewall作为防火墙

先安装
yum install firewalld
启动: systemctl start firewalld
关闭: systemctl stop firewalld
查看状态: systemctl status firewalld 
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
开机禁用  : systemctl disable firewalld
开机启用  : systemctl enable firewalld

2 关闭SELINUX

vi /etc/selinux/config 
SELINUX=enforcing #注释掉
SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加 

:wq! #保存退出
以上是重启之后不起用了。​
setenforce 0 #使配置立即生效

3 安装路径约定

软件源代码包存放位置:/lnmp/src      mkdir -p /lnmp/src
源码包编译安装位置:/usr/local/软件名
数据库数据文件存储路径:/data/mysql

4 安装编译工具及库文件

yum install -y make apr* autoconf automake curl curl-devel gcc gcc-c++  cmake  gtk+-devel zlib-devel openssl openssl-devel pcre-devel gd kernel keyutils patch perl kernel-headers compat* cpp glibc libgomp libstdc++-devel keyutils-libs-devel  libarchive   libsepol-devel libselinux-devel krb5-devel libXpm* freetype freetype-devel freetype* fontconfig fontconfig-devel libjpeg* libpng* php-common php-gd gettext gettext-devel ncurses* libtool* libxml2 libxml2-devel patch policycoreutils bison

5 编译安装cmake

cd /lnmp/src
wget http://www.cmake.org/files/v2.8/cmake-2.8.10.2.tar.gz

tar -zxvf cmake-2.8.10.2.tar.gz 
cd  /lnmp/src/cmake-2.8.10.2
./configure --prefix=/usr/local/cmake   #安装前的配置
make #编译  echo $?  0表示没有出错
make install #安装

vim /etc/profile 在path路径中增加cmake执行文件路径:
export PATH=$PATH:/usr/local/cmake/bin

source /etc/profile使配置立即生效
cmake --version

6 编译安装pcel

cd /lnmp/src
wget https://ftp.pcre.org/pub/pcre/pcre-8.39.tar.gz
tar -zxvf pcre-8.39.tar.gz
cd pcre-8.39
./configure --prefix=/usr/local/pcre && make && make install

7 安装 libmcrypt

cd /lnmp/src
wget https://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz 
cd libmcrypt-2.5.8
./configure 
make
make install

8 安装GD库

cd /lnmp/src
wget https://jaist.dl.sourceforge.net/project/gd2/gd-2.0.35.tar.gz
tar -zxvf gd-2.0.35.tar.gz 
cd gd-2.0.35
./configure --enable-m4_pattern_allow --prefix=/usr/local/gd --with-jpeg=/usr/lib --with-png=/usr/lib --with-xpm=/usr/lib --with-freetype=/usr/lib --with-fontconfig=/usr/lib 
make #编译
make install #安装

9 安装MySQL

groupadd mysql #添加mysql组
useradd -g mysql mysql -s /sbin/nologin #创建用户mysql并加入到mysql组,不允许mysql用户直接登录系统
mkdir -p /data/mysql #创建MySQL数据库存放目录
chown -R mysql:mysql /data/mysql #设置MySQL数据库目录权限
cd /lnmp/src
wget https://cdn.mysql.com/archives/mysql-5.5/mysql-5.5.60.tar.gz
tar -zxvf mysql-5.5.60.tar.gz

cd mysql-5.5.60
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306
make
make install

cd /usr/local/mysql
cp ./support-files/my-huge.cnf /etc/my.cnf #拷贝配置文件(注意:如果/etc目录下面默认有一个my.cnf,直接覆盖即可)
vi /etc/my.cnf #编辑配置文件,在 [mysqld] 部分增加
datadir = /data/mysql #添加MySQL数据库路径

./scripts/mysql_install_db --user=mysql #生成mysql系统数据库
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #把Mysql加入系统启动
chmod 755 /etc/init.d/mysqld #增加执行权限
chkconfig mysqld on #加入到服务里面

vi /etc/rc.d/init.d/mysqld #编辑
basedir=/usr/local/mysql #MySQL程序安装路径
datadir=/data/mysql #MySQl数据库存放目录

service mysqld start #启动,可能无法写入pid文件,注意将mysql用户权限加入至/usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
service mysqld start #再启动

vi /etc/profile #把mysql服务加入系统环境变量:在最后添加下面这一行
export PATH=$PATH:/usr/local/cmake/bin:/usr/local/mysql/bin
source /etc/profile #使配置立即生效

mkdir /var/lib/mysql #创建目录
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #添加软链接
mysql_secure_installation #设置Mysql密码,先输入之前密码(因为之前没有所以直接回车)根据提示按Y 回车输入2次密码

Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] n
Reload privilege tables now? [Y/n] y

#   /usr/local/mysql/bin/mysqladmin -u root -p password "123456" #或者直接修改密码
到此,mysql安装完成!

10 安装nginx

cd /lnmp/src
wget http://101.96.8.156/nginx.org/download/nginx-1.12.2.tar.gz
tar -zxvf nginx-1.12.2.tar.gz 

groupadd www #添加www组
useradd -g www www -s /sbin/nologin #创建nginx运行账户www并加入到www组,不允许www用户直接登录系统

wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar -zxvf openssl-1.1.0b.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www   --with-http_stub_status_module --with-openssl=/lnmp/src/openssl-1.1.0b --with-pcre=/lnmp/src/pcre-8.39   --with-http_ssl_module
注意:--with-pcre=/usr/local/src/pcre-8.39指向的是源码包解压的路径,而不是安装的路径,否则会报错
make && make install

/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s stop #停止

11 安装php

cd /lnmp/src/
wget http://cn2.php.net/distributions/php-7.2.14.tar.bz2
yum install -y bzip2
tar -jxvf php-7.2.14.tar.bz2 
cd php-7.2.14

./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc  --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mysqlnd --with-mysql-sock=/usr/local/mysql/mysql.sock --with-gd --with-iconv --with-zlib --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 --with-mcrypt --with-curl --with-jpeg-dir --with-freetype-dir   --with-pdo-mysql=/usr/local/mysql/

make #编译,,若遇到make: *** [ext/fileinfo/libmagic/apprentice.lo] 错误 ,这加参数–-disable-fileinfo
make install #安装

cp php.ini-production /usr/local/php7/etc/php.ini #复制php配置文件到安装目录
rm -rf /etc/php.ini #删除系统自带配置文件
ln -s /usr/local/php7/etc/php.ini /etc/php.ini #添加软链接
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf  

vi /usr/local/php7/etc/php-fpm.d/www.conf  #编辑

user = www #设置php-fpm运行账号为www
group = www #设置php-fpm运行组为www

vim /usr/local/php7/etc/php-fpm.conf
pid = run/php-fpm.pid #取消前面的分号

加入环境变量
vim /etc/profile
添加 :/usr/local/php7/bin
:wq
source /etc/profile

设置 php-fpm开机启动
cp /lnmp/src/php-7.2.14/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录
chmod +x /etc/rc.d/init.d/php-fpm #添加执行权限
chkconfig php-fpm on #设置加入服务
vi /usr/local/php7/etc/php.ini #编辑配置文件


这里暂时不给禁用
找到:disable_functions =
修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname
#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消s禁用
找到:;date.timezone =
修改为:date.timezone = PRC #设置时区
找到:expose_php = On
修改为:expose_php = OFF #禁止显示php版本的信息
找到:short_open_tag = Off
修改为:short_open_tag = ON #支持php短标签

12 配置nginx支持php

vi /usr/local/nginx/conf/nginx.conf
修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改

user www www; #首行user去掉注释,修改Nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错
    user www www;
    worker_processes 1;
    events {
    worker_connections 1024;
    }
    http {
        include mime.types;
        default_type application/octet-stream;
        sendfile on;
        keepalive_timeout 65;
        server {
            listen 80;
            server_name localhost;
                location / {
                root /data/www;
                index index.php index.html index.htm;
                }
                location ~ \.php$ {
                root /data/www;
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                }
        }
    }

:wq

mkdir -p /data/www
chown www:www /data/www/ -R #设置目录所有者
chmod 700 /data/www -R #设置目录权限

13 重启各服务(nginx还未加入服务)

service restart mysqld
service restart php-fpm
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

14 安装redis

wget http://120.52.51.15/download.redis.io/releases/redis-4.0.12.tar.gz
tar -zvfx redis-4.0.12.tar.gz
mv redis-4.0.12.tar.gz /usr/local/redis
cd /usr/local/redis/
make && make install

cd /usr/local/redis/src 
./redis-server  #以默认配置文件进行启动

redis-cli -h 127.0.0.1 -p 6379  #客户端连接

vim /usr/local/redis/redis.conf

daemonize yes #修改为yes 守护进程
:wq


./src/redis-server redis.conf  #以这个配置文件启动(有守护进程)
ps aux | grep redis
root     109062  0.1  0.2 145316  2168 ?        Ssl  03:14   0:00 ./src/redis-server 127.0.0.1:6379

安装phpredis 扩展(让php7可以使用redis)

https://github.com/phpredis/phpredis/releases
上传phpredis-4.2.0.tar.gz到/lnmp/src目录

tar -zxvf phpredis-4.2.0.tar.gz
cd phpredis-4.2.0
/usr/local/php7/bin/phpize              # php安装后的路径
./configure --with-php-config=/usr/local/php7/bin/php-config
make && make install 

安装完显示  Installing shared extensions:   /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/
vim /etc/php.ini
增加如下内容:
bash extension_dir = " /usr/local/php7/lib/php/extensions/no-debug-non-zts-20170718/" extension=redis.so
重启php-fpm
bash service php-fpm restart
查看phpinfo();已有redis
上一篇下一篇

猜你喜欢

热点阅读