Centos7.2搭建Lamp

Centos7.2搭建Lamp

今天记录下搭建Lamp的过程(有错请指出,谢谢!!)

环境说明:php

  1. 使用的是阿里云的ECS,系统为Centos7.2
  2. 搭建Lamp线上环境(linux + apache2 + mysql + php5.6)
  3. 安装git进行代码的拉取

Apachede 搭建

1.查看httpd包是否可用

yum list | grep httpd

2.安装httpd(apache)

yum install httpd

3.启动

说句题外话:历史上的linux广泛都使用init进程(不感兴趣能够跳过)

也就是咱们常说的:html

$ sudo /etc/init.d/httpd start
# 或者
$ service httpd start

据我所知道:init(初始化检查)linux第一个启动的进程,全部的进程都是他的子孙;并且他是串行工做的,因此传统的这种模式会有2个致命的缺点:mysql

1.是启动时间长。init进程是串行启动,只有前一个进程启动完,才会启动下一个进程。linux

2.是启动脚本复杂。init进程只是执行启动脚本,无论其余事情。脚本须要本身处理各类状况,这每每使得脚本变得很长。nginx

因此后面出现了一种新的技术systemd来代替;好像centos7 系统就开始默认用这个了git

详细之后咱们再聊sql

语归正传

咱们要作的是 下面的启动并设为开机启动便可apache

3.1 启动apache2

systemctl start httpd

3.2 查看apache2状态

systemctl status httpd

3.3 中止apache2

systemctl stop httpd

3.4 重启apache2

systemctl restart httpd

3.5 设为开机启动

systemctl enable httpd.service

Mysql搭建

1.安装Mysql的源(官网的)

yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm

2.安装Mysql(官网的)

yum install mysql-community-server

3.启动Mysql

systemctl start mysqld

4.查看默认密码

grep 'temporary password' /var/log/mysqld.log
2017-12-12T09:19:51.358192Z 1 [Note] A temporary password is generated for root@localhost: ;+2e9;VUlwi4

冒号后面的就是初始化密码vim

5.重置密码(不具体说明,不懂Google)

使用密码登陆mysqlcentos

mysal -h localhost -u root -p
;+2e9;VUlwi4

重置密码

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
# 若是是当前登录用户用
SET PASSWORD = PASSWORD('newpassword')

建立一个用户

CREATE USER 'username'@'host' IDENTIFIED BY 'password'

用户只读权限

GRANT SELECT ON *.* TO 'pig'@'%';

PHP的安装

我这使用的是php5.6,不一样版本的php安装也是大同小异

1.下载源码包

官网地址: http://php.net/downloads.php

选择合适的php版本进行下在:

你能够选线下在,而后ftp上传到对应的服务器;也能够在服务器上使用wget下载;

显然不必画蛇添足,我选择的是后者(wget),前者适用于在官网或源网站找不到对应的源码包;

wget http://php.net/get/php-5.6.32.tar.gz/from/this/mirror

2.解压

源码包下载完成!

注意:由于我这是用wget在官网上下载;下载包明为:mirror;我先重命名为php.tar.gz;方便解压

cp mirror php.tar.gz
tar -zxvf php.tar.gz

解压完成

cd php-5.6.32

3.安装一些必要的依赖

yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel

4.安装gcc

yum install gcc

5.安装其余配件

yum -y install libxslt-devel* 
yum -y install perl* 
yum -y install httpd-devel
find / -name apxs 获得的路径是:/usr/bin/apxs
因而获得--with-apsx2的路径是/usr/bin/apxs

6.配置(php扩展安装哪些)

./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath -enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --enable-pcntl --with-curl --with-fpm-user=nginx --enable-ftp --enable-session --enable-xml --with-apxs2=/usr/bin/apxs

7.编译安装

make
make install

8.添加环境变量

vim /etc/profile

在末尾处加上:

PATH=$PATH:/usr/local/php/bin
export PATH

从新加载文件,使修改马上生效

source /etc/profile

9.查看版本信息

php -v

若是能看的php的版本信息 就是完成了!

10.生成必要文件

cp php.ini-production /usr/local/php/etc/php.ini
cp sapi/fpm/php-fpm /usr/local/php/etc/php-fpm
cp /usr/local/phpetc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf

下面那个是 php7才有,具体做用自行google吧

cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf

到此 软件已经安装完毕!


配置

下面的配置照抄就好,不在本次探讨其含义和做用

找到:

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz

后面追加

php5.6版本

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

搜索有没有下面这一行(省略号表明的是libphp5.so模块的绝对路径)

LoadModule php5_module ...

若是没有加上(个人有)

LoadModule php5_module        /usr/lib64/httpd/modules/libphp5.so

配置默认打开页面

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

到此其实已经 完成了lamp的搭建了

固然我有些强迫症,我喜欢将每一个虚拟主机配置文件独立成一个对应的文件,放在一个统一的文件夹里面(没有这样的需求的小伙伴,能够忽略我下面的内容。。。)


独立虚拟主机配置

编辑httpd.conf文件

vim /etc/httpd/conf/httpd.conf

搜索(一般是末尾)

IncludeOptional conf.d/*.conf

在后面加上

IncludeOptional vhost/*

而后在 /etc/httpd下建立 vhost目录,配置文件丢里面

<VirtualHost *:80>
DocumentRoot /home/www/XXX
ServerName XXX.XXX.com
  <Directory "/home/www/XXX">
    Options -Indexes +FollowSymLinks +ExecCGI
    AllowOverride All
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>
</VirtualHost>