什么是LAMNP

Linux简称为L, Apache简称为A, Mysql简称为M, Php简称为P, Nginx简称为N

操作系统选择

选择CentOS7 64位作为我们本次安装的操作系统, CentOs是redHat的免费版本, 可在云服务器厂商进行购买

远程工具的选择

安装软件之前需要一款合适的ssh连接工具, 我一直在使用Xshell感觉还不错

关闭SELinux防火墙

永久关闭防火墙, 编辑config将SELINUX=enforcing 改成 SELINUX=disabled

vi /etc/selinux/config

临时关闭防火墙

setenforce 0

可选择yum安装或源码安装

yum安装很快, 如果你是新手并不推荐你使用yum安装, 适时使用源码安装, 了解编译安装过程还是非常必要的.

yum安装LMAP

安装PHP, -y自动安装依赖, 不需要手动yes

yum install php php-devel -y

安装并启动Apache

yum install httpd -y

启动Apache

service httpd start

设置Apache为开机启动

systemctl enable httpd

编辑Apache配置文件

vi /etc/httpd/conf/httpd.conf

将 DocumentRoot "/var/www/html" 改为 DocumentRoot "/var/www" 这是网站根目录 当然你也可以不更改

<Directory "/var/www">
#将none改为All(允许.htaccess文件进行apache规则重写)
AllowOverride none
#Allow open access:
Require all granted
</Directory>
<IfModule dir_module>
DirectoryIndex index.php index.html index.htm    #(默认打开的FILES)
</IfModule>

安装MariaDB, CentOS 7.0中,已经使用MariaDB替代了MySQL数据库

yum install mariadb mariadb-server

启动MariaDB

service mariadb start

拷贝配置文件

cp /usr/share/mysql/my-huge.cnf /etc/my.cnf

初始化数据库

mysql_secure_installation

测试文件

vim /var/www/index.php

#写入
<?php
    phpinfo();
?>

修改php配置文件, 开启报错

display_errors = Off
error_reporting = E_ALL | E_STRICT

修改过配置文件后, 需要重启Apache

service httpd restart

LMNP源码安装

首先我们先设置好目录结构

目录结构

    /
    +--/data/
    |    |
    |    +--www            //站点根目录
    |    |
    |    +--mysql        //mysql安装/database地址
    |    |
    |    +--nginx        //nginx安装地址
    |    |
    |    +--php            //php安装地址
    |    |
    |    +--package        //源码包
    |    |
    |    |--boost        //mysql boost c++ lib
    |    
    |
    +--/etc/
    |    |
    |    +--my.cnf        //mysql配置文件
    |    |
    |    +--nginx        //nginx配置目录
    |    |
    |    +--php.ini        //php配置文件
    |    |
    |    |
    |    +--init.d
    |        |
    |        +--php-fpm    //fpm启动
    |        |
    |        +--mysqld    //mysql启动
    |
    |--/sbin/
        |
        +--nginx        //nginx启动

添加需要的组合用户

groupadd -r mysql 
useradd -rg mysql mysql 

groupadd -r nginx
useradd -r -g nginx  nginx

groupadd -r php
useradd -rg php php

groupadd -r www 
useradd -rg www www

创建安装目录

mkdir -p /data/php /data/nginx /data/temp /data/www /data/package /data/boost

创建mysql的log文件, 并设置目录权限最高级

touch /data/temp/mysql.log
chmod 777 -R /data/temp

安装所有依赖

yum -y install cmake make gcc-c++ ncurses-devel perl-Data-Dumper vim wget
yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel
yum -y install libmcrypt libmcrypt-devel mhash mhash-devel libxml2 libxml2-devel bzip2 bzip2-devel  autoconf curl-devel libjpeg-devel libpng-devel freetype-devel

下载并解压源码包

tar zxvf ./mysql-boost-5.7.22.tar.gz -C /data/package 
tar zxvf ./nginx-1.14.0.tar.gz -C /data/package
tar zxvf ./php-7.2.5.tar.gz -C /data/package

编译安装mysql, mysql 5.7.5开始Boost库是必需的, 最新版的 mysql 都使用cmake命令进行安装

cd /data/package/mysql-5.7.22 
cmake -DCMAKE_INSTALL_PREFIX=/data/mysql   -DSYSCONFDIR=/etc -DMYSQL_USER=mysql  -DWITH_MYISAM_STORAGE_ENGINE=1  -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1  -DWITH_MEMORY_STORAGE_ENGINE=1  -DWITH_READLINE=1   -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  -DMYSQL_TCP_PORT=3306  -DENABLED_LOCAL_INFILE=1  -DENABLE_DOWNLOADS=1  -DWITH_PARTITION_STORAGE_ENGINE=1  -DEXTRA_CHARSETS=all  -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci  -DWITH_DEBUG=0  -DMYSQL_MAINTAINER_MOODE=0 -DWITH_BOOST=/data/package/mysql-5.7.22/boost/boost_1_59_0
make && make install

部分参数说明

cmake参数 cmake值
DCMAKE_INSTALL_PREFIX mysql安装路径
DMYSQL_DATADIR mysql数据库位置
DSYSCONFDIR 默认my.cnf选项文件目录

初始化mysql

chown -R mysql:mysql /data/mysql
/data/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/data/mysql --datadir=/data/mysql/data
cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
chmod 777 /etc/init.d/mysqld

将mysql/bin加入全局变量

echo "export PATH=\$PATH:/data/mysql/bin" >> /etc/profile
source /etc/profile

设置mysql为开机自启

chkconfig mysqld  on 
chkconfig --add mysqld

启动mysql

service mysqld start

编译安装nginx

cd /data/package/nginx-1.14.0
./configure --prefix=/data/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/data/temp/nginx_error.log --http-log-path=/data/temp/nginx_access.log --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --http-client-body-temp-path=/data/temp/client --http-proxy-temp-path=/data/temp/proxy --http-fastcgi-temp-path=/data/temp/fastcgi --with-mail --with-mail_ssl_module --with-pcre
make && make install

赋予nginx目录权限

chown -R nginx:nginx /data/nginx

启动nginx

/sbin/nginx

编译安装PHP

cd /data/package/php-7.2.5
./configure --prefix=/data/php --with-config-file-path=/etc --with-gd --with-iconv --with-zlib --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-png-dir --with-gettext --with-curl --with-jpeg-dir --with-freetype-dir --with-mysqli --enable-embedded-mysqli --with-pdo-mysql -enable-xml --with-bz2
make && make install

赋予php目录权限

chown -R php:php /data/php

将php/bin加入全局变量

echo "export PATH=\$PATH:/data/php/bin" >> /etc/profile
source /etc/profile

php-fpm 是php-cgi的管理器, php-cgi是nginx与php沟通的桥梁, 我们需要配置一下

cp /data/package/php-7.2.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

cp /data/php/etc/php-fpm.conf.default /data/php/etc/php-fpm.conf

cp /data/php/etc/php-fpm.d/www.conf.default /data/php/etc/php-fpm.d/www.conf
cp /data/package/php-7.2.5/php.ini-production /etc/php.ini

启动php-fpm

service php-fpm start

results matching ""

    No results matching ""