./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
1.LAMP架构介绍
LAMP:Linux+Apache(httpd)+Maridb(Mysql)+PHP,常用来搭建动态网站或者服务器的开源软件
习惯上,Apache一般是指httpd,当然Apache还有很多的其他软件。Apache是最常用的web服务软件,而MySQL是比较小型的数据库软件,MySQL存储用户名;密码和数据、图片之类的放在静态文件里。 这两个软件及PHP都可以安装到windows机器上。
Apache MySQL PHP三个角色可以在一台机器、也可以分开(Apache和PHP要在一起)
2.MySQL安装
下载MySQL
- MySQL的几个常用安装包:rpm、源码、二进制免编译
- cd /usr/local/src
- wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
初始化MySQL
把之前下载的包解压出来
tar -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz
在创建一个运行MySQL的目录
创建好目录之后进行初始化
配置文件
首先复制配置文件mysql的模板配置文件my-default.cnf,但是系统自带已经存在,我们只需要修改一下即可
增加到系统列表服务:chkconfig --add mysqld
启动mysqld的服务
- 启动:service mysqld start
- /etc/init.d/mysqld start - 关闭:service mysqld stop
杀进程最好用killall 这样能够尽量保存数据不会丢失,kill直接杀掉进程数据可能会丢失。
在做mariadb安装之前可以用killall来杀掉进程MySQL服务
2.MariaDB安装
MariaDB和mysql同源,因此安装方式也是一模一样的
下载MariaDB包在电脑上下载之后进行传输文件 因为mariadb在Linux虚拟机上下载很慢下载好之后进行解压
解压,并移到/usr/local/mariadb下
初始化,此处和mysql一样
把mariadb的默认配置文件与启动脚本文件复制一份,并改如下名称
编辑配置文件/etc/init.d/mariadb
启动mariadb服务
查看mariadb监听的端口
因为刚才没有修改配置文件 /usr/local/mariadb/my.cnf,在那里面我们没有指定相应的目录,它会自动加载mysql的配置文件目录
因此我们需要到/usr/local/mariadb/my.cnf里面指定datadir的路径修改好之后再停止mariadb服务
再次启动mariadb服务
3.Apache安装
分别下载:2.4.37源码包 apr-1.6.5 apr-util-1.6.1
定义到apr-1.6.5目录下
安装包: ./configure --prefix=/usr/local/apr
安装apr-util-1.6.1
- ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
- make && make install
安装Apache2.4
- ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
- make
- make install
在/apache2.4/bin/目录下
启动httpd服务
启动httpd服务:/usr/local/apache2.4/bin/apachectl start
4.安装PHP5
虽然目前最新版本的PHP为PHP7,但是还有批量的PHP5在使用,而且一些论坛软件不支持PHP7,因此也需要掌握PHP5和PHP7
进入php-5.6.32 目录下,进行配置
- –prefix=/usr/local/php 指定的安装目录;
- –with-apxs2=/usr/local/apache2/bin/apxs 该文件是Apache的一个工具,可以将扩展模块添加到Apache的module文件;
- –with-config-file-path=/usr/local/php/etc 指定配置文件所在路径;
- –with-mysql=/usr/local/mysql 指定mysql的路径;
- –with-mysqli=/usr/local/mysql/bin/mysql_config
- –with-pdo-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config 上面两项参数是指定相关mysql库
- –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 以上参数是指定PHP相关的一些模块(通用)
然后在make && make install在验证是否安装正确
在安装PHP5需要安装很多库文件这时候可以使用yum list |grep 名字 进行模糊搜索。如果实在找不到可以在网上找。
查看php5下有哪些模块:/usr/local/php/bin/php -m
前面已经讲过php作为httpd的模块存在;因此php 不需要启动
查看httpd的模块;此时能看到 php5_module (shared)
查看模块libphp5.so文件的权限
此时为配置文件里面的模块,增减#可以随用随取 不用就在前面注释掉
php的参考配置文件
- php.ini-production 生产环境用
- php.ini-development 开发环境和测试环境下用
5.PHP7安装
先进入src下进行下载PHP7
解压之后进入php7目录编译安装
进行编译
./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
进行验证是否正确 echo $?
make install 执行最后一步安装PHP7
查看PHP7的配置模板
查看httpd的模块;此时能看到 php5_module (shared)和 php7_module (shared);再次说明php是作为httpd的模块存在
想用哪个可以到配置文件中进行注释掉来选取是是PHP7还是PHP5
6.Apache与PHP结合
Apache(httpd)的主配置文件:/usr/local/apache2.4/conf/httpd.conf
启动httpd服务时总会有一些配置文件提醒好像是出错了一样这时候可以修改配置文件把那些提醒给去掉
关闭httpd服务之后再重启httpd服务查看是否成功
查看在网页上能否打开ip
先检查主机能否ping通自己的IP
在虚拟机上增加一条iptables规则 iptables -I INPUT -p tcp --dport 80 -j ACCEPT
之后再机器上显示
这里能够显示是因为
增加一行让php解析在配置文件中
增加一个索引页。就会直接跳转到主页
新建一个1.php文件
在浏览器上进行查看能否解析车PHP
php能够支持解析;那么把它加上#,代表不加载
#AddType application/x-httpd-php .php
问题总结
如果浏览器不能解析php,那么需要从以下几点来入手
第一步:查看有没有加载php模块
第二步:查看没有php模块文件
第三步:前面两项有,在httpd.con的配置文件中,有加载模块
LoadModule php5_module modules/libphp5.so
第四步:之前都有,在httpd.con的配置文件中,有没有此项
AddType application/x-httpd-php .php
第五步:在httpd.con的配置文件中,下面加 index.php
加载PHP7
先把PHP5模块给注释掉只剩下PHP7
在电脑浏览器上打开并查看PHP7的版本号