LAMP安装
LAMP=Linux+Apache+Mysql+Php 3个角色可以安装在不同的机器,但是 Apache和Php必须要早同一台机器。三者的关系如下图:

MySQL/Mariadb
MySQL是一个关系型数据库,由mysql ab公司开发,2009年sun公司被oracle公司收购(74亿刀) Mariadb为MySQL的一个分支,由MySQL原作者带领大部分原班人马创立。Mariadb版本:
- Community 社区版本
- Enterprise 企业版
- GA(Generally Available)指通用版本,在生产环境中用的
- DMR(Development Milestone Release)开发里程碑发布版
- RC(Release Candidate)发行候选版本
- Beta开放测试版本,Alpha内部测试版本。
MYSQL安装步骤
- 1.下载需要安装的包
[root@localhost src]# cd /usr/local/src
[root@localhost src]# wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
如果wget太慢,可以下载到物理机里,然后再使用rz(yum install -y lrzsz)发送到linux。

- 2.解压缩,移动到常规目录
[root@localhost src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
[root@localhost src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
[root@localhost local]# du -sh mysql/
2.3G mysql/

- 3.创建用户和目录,执行编译初始化
[root@localhost scripts]# useradd mysql
[root@localhost scripts]# mkdir /data/
[root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql
[root@localhost mysql]# echo $? //编译结束 使用echo $?查看是否有错误!
0
- 4.拷贝配置文件和启动脚本
[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf //配置文件
[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysql //启动脚本
[root@localhost mysql]# vi /etc/init.d/mysql
//修改启动脚本参数
[root@localhost mysql]# ll /etc/init.d/mysql
-rwxr-xr-x. 1 root root 10592 12月 5 11:08 /etc/init.d/mysql //修改权限为755,默认就是755,所以不用改。

- 5.启动Mysql
[root@localhost mysql]# chkconfig --add mysqld //添加到开机启动中
[root@localhost mysql]# chkconfig --list
Note: This output shows SysV services only and does not include native
systemd services. SysV configuration data might be overridden by native
systemd configuration.
If you want to list systemd services use 'systemctl list-unit-files'.
To see services enabled on particular target use
'systemctl list-dependencies [target]'.
mysqld 0:off 1:off 2:on 3:on 4:on 5:on 6:off
netconsole 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
[root@localhost mysql]# service mysqld start //也可以使用命令 /etc/init.d/mysqld start
Starting MySQL.Logging to '/data/mysql/localhost.localdomain.err'.
.... SUCCESS!
[root@localhost mysql]# netstat -lntp //为什么端口是tcp6的3306。
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 823/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 906/master
tcp6 0 0 :::22 :::* LISTEN 823/sshd
tcp6 0 0 ::1:25 :::* LISTEN 906/master
tcp6 0 0 :::3306 :::* LISTEN 2118/mysqld
[root@localhost mysql]# ps aux |grep mysqld
root 2010 0.0 0.1 11768 1572 pts/0 S 11:37 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
mysql 2118 2.7 44.9 1302684 449744 pts/0 Sl 11:37 0:03 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid
root 2165 0.0 0.0 112632 684 pts/0 S+ 11:39 0:00 grep --color=auto mysqld
也可以指定配置文件启动!
[root@localhost mysql]# service mysqld stop
[root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql &
//--defaults-file为指定配置文件所在路径
[root@localhost mysql]# killall mysqld //使用killall结束服务!
Mariadb安装步骤
Mariadb安装和Mysql差不多!
- 1.下载需要安装的包
由于包太大,所以最好先去https://downloads.mariadb.org/ 下载然后rz到虚拟机里去。
[root@localhost mysql]# cd /usr/local/src
[root@localhost src]# wget https://downloads.mariadb.com/MariaDB/mariadb-10.2.6/bintar-linux-glibc_214-x86_64/mariadb-10.2.6-linux-glibc_214-x86_64.tar.gz

- 2.解压缩,移动到常规目录
[root@localhost src]# tar zxvf mariadb-10.2.19-linux-glibc_214-x86_64.tar.gz
[root@localhost src]# mv mariadb-10.2.19-linux-glibc_214-x86_64 /usr/local/mariadb
[root@localhost local]# cd mariadb/
[root@localhost mariadb]# du -sh
2.0G .
- 3.创建用户和目录,执行编译初始化
之前用户和目录已经创建完毕,这步跳过,直接编译初始化。
[root@localhost mariadb]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb --datadir=/data/mariadb
Installing MariaDB/MySQL system tables in '/data/mariadb' ...
OK
...
[root@localhost mariadb]# echo $?
0
- 4.拷贝配置文件和启动脚本
[root@localhost mariadb]# cp support-files/my-small.cnf /usr/local/mariadb/my.cnf //配置脚本,里面有很多选项,根据自己内存大小选取!
[root@localhost mariadb]# cp support-files/mysql.server /etc/init.d/mariadb
[root@localhost mariadb]# vi /etc/init.d/mariadb


- 5.启动Mariadb
[root@localhost mariadb]# service mariadb start // /etc/init.d/mariadb start也可以
Starting mariadb (via systemctl): [ 确定 ]
[root@localhost mariadb]# ps aux |grep mariadb
root 3427 0.1 0.1 115388 1720 ? S 13:15 0:00 /bin/sh /usr/local/mariadb/bin/mysqld_safe --defaults-file=/usr/local/mariadb/my.cnf --datadir=/data/mariadb --pid-file=/data/mariadb/localhost.localdomain.pid
mysql 3536 4.2 4.9 1126868 49720 ? Sl 13:15 0:00 /usr/local/mariadb/bin/mysqld --defaults-file=/usr/local/mariadb/my.cnf --basedir=/usr/local/mariadb --datadir=/data/mariadb --plugin-dir=/usr/local/mariadb/lib/plugin --user=mysql --log-error=/data/mariadb/localhost.localdomain.err --pid-file=/data/mariadb/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
root 3571 0.0 0.0 112632 684 pts/0 S+ 13:15 0:00 grep --color=auto mariadb
Apache安装步骤
Apache是一个基金会的名字,httpd才是我们要安装的软件包,apr和apr-util是一个通用的函数库,它让httpd可以不关心底层的操作系统平台,可以很方便地移植(从linux移植到windows)
- 1.下载需要安装的包
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz
[root@localhost src]# wget http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz
[root@localhost src]# wget https://mirrors.aliyun.com/apache/httpd/httpd-2.4.37.tar.gz

- 2.解压缩,安装到常规目录下
[root@localhost src]# tar zxvf httpd-2.4.37.tar.gz
[root@localhost src]# tar zxvf apr-1.6.5.tar.gz
[root@localhost src]# tar zxvf apr-util-1.6.1.tar.gz
[root@localhost src]# cd apr-1.6.5/
[root@localhost apr-1.6.5]# ./configure --prefix=/usr/local/apr
[root@localhost apr-1.6.5]# echo $?
0
[root@localhost apr-1.6.5]# make & make install
[root@localhost src]# cd apr-util-1.6.1/
[root@localhost apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-tuil --with-apr=/usr/local/apr //apr-util 依赖apr
[root@localhost apr-util-1.6.1]# make && make install
...
xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory
#include <expat.h>
^
compilation terminated.
make[1]: *** [xml/apr_xml.lo] Error 1
make[1]: Leaving directory `/usr/local/src/apr-util-1.6.1'
make: *** [all-recursive] Error 1
[root@localhost apr-util-1.6.1]# echo $? //出错了
2

[root@localhost apr-util-1.6.1]# yum install -y expat-devel
[root@localhost apr-1.6.5]# make & make install
[root@localhost apr-util-1.6.1]# echo $?
0
[root@localhost src]# cd httpd-2.4.37/
[root@localhost httpd-2.4.37]# ./configure --prefix=/usr/local/apache 2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-tuil --enable-so --enable-mods-shared=most
...
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
[root@localhost httpd-2.4.37]# echo $? 又出错了
1
[root@localhost httpd-2.4.37]# yum list | grep pcre
[root@localhost httpd-2.4.37]# yum install -y pcre-devel
[root@localhost httpd-2.4.37]# echo $?
0

[root@localhost httpd-2.4.37]# make && make install //又出错了...

安装从网上找来的方法解决一下看看

[root@localhost httpd-2.4.37]# make && make install
[root@localhost httpd-2.4.37]# echo $? //OK 终于成功了
0
查看apache加载了哪些模块:
[root@localhost httpd-2.4.37]# /usr/local/apache2.4/bin/httpd -M

- 3 启动服务
[root@localhost httpd-2.4.37]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
[root@localhost httpd-2.4.37]# ps aux | grp httpd
-bash: grp: 未找到命令
[root@localhost httpd-2.4.37]# ps aux | grep httpd
root 48089 0.0 0.2 71024 2312 ? Ss 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 48090 0.0 0.2 359988 2176 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 48091 0.0 0.2 359988 2176 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
daemon 48092 0.0 0.2 359988 2176 ? Sl 19:52 0:00 /usr/local/apache2.4/bin/httpd -k start
root 48177 0.0 0.0 112680 700 pts/0 S+ 19:54 0:00 grep --color=auto httpd
[root@localhost httpd-2.4.37]# netstat -lntp //为什么开放的80端口又是tcp6?
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 823/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 906/master
tcp6 0 0 :::80 :::* LISTEN 48089/httpd
tcp6 0 0 :::22 :::* LISTEN 823/sshd
tcp6 0 0 ::1:25 :::* LISTEN 906/master
tcp6 0 0 :::3306 :::* LISTEN 3536/mysqld
PHP5安装步骤
- 1 下载需要安装的包,解压缩
[root@localhost src]# wget http://cn2.php.net/distributions/php-5.5.38.tar.bz2
[root@localhost src]# tar jxvf php-5.5.38.tar.bz2
- 2 编译初始化
[root@localhost src]# cd php-5.5.38/
[root@localhost php-5.5.38]# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
...
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
[root@localhost php-5.5.38]# echo $? //出错了
1
[root@localhost php-5.5.38]# yum install -y libmcrypt-devel
[root@localhost php-5.5.38]# yum install -y epel-release
[root@localhost php-5.5.38]# yum install -y freetype-devel
[root@localhost php-5.5.38]# yum install -y libpng-devel
[root@localhost php-5.5.38]# yum install -y libjpeg-devel
[root@localhost php-5.5.38]# yum install -y bzip2-devel
[root@localhost php-5.5.38]# yum install -y openssl-devel
真尼玛不容易! 
- 3 make && make install
[root@localhost php-5.5.38]#make && make install
apache里多了一个重要的模块

[root@localhost php-5.5.38]# /usr/local/php/bin/php -i | less //查看程序信息
由于之前编译的时候定义了配置文件的属性,所以要补回去。
[root@localhost php-5.5.38]# cp php.ini-production /usr/local/php/etc/php.ini //php5配置文件


最后修改启动apache时的警告信息
[root@localhost php-5.5.38]# vi /usr/local/httpd/conf/httpd.conf

PHP7安装步骤
- 下载安装包,解压,make
[root@localhost php-7.1.6]# wget http://cn2.php.net/distributions/php-7.1.6.tar.bz2
[root@localhost php-7.1.6]# tar jxvf php-7.1.6.tar.bz2
[root@localhost php-7.1.6]# ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif
[root@localhost php-7.1.6]# make && make install
[root@localhost php-7.1.6]# vi /usr/local/apache2.4/conf/httpd.conf
查看apache的配置文件发现php5和php7都有了!

==php不用手动启动,他只是一个apache加载的模块!==
apache和php结合

修改完之后检查语法是否正确
[root@localhost php-5.5.38]# /usr/local/httpd/bin/apachectl -t
Syntax OK
[root@localhost php-5.5.38]# /usr/local/httpd/bin/apachectl graceful //快速重启
添加配置 不然php无法解析!

错误统计:
apr-util 错误:
xml/apr_xml.c:35:19: 致命错误:expat.h:没有那个文件或目录 //yum install -y expat-devel
#include <expat.h>
httpd 错误
configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/ //yum install -y pcre-devel
php5 错误
configure: error: Cannot find OpenSSL's <evp.h> //yum install -y openssl-devel
configure: error: Please reinstall the BZip2 distribution //yum install -y bzip2-devel
configure: error: jpeglib.h not found. //yum install -y libjpeg-devel
configure: error: png.h not found. //yum install -y libpng-devel
configure: error: freetype-config not found. //yum install -y freetype-devel
configure: error: mcrypt.h not found. Please reinstall libmcrypt. //yum install -y libmcrypt-devel

346

被折叠的 条评论
为什么被折叠?



