1. LAMP架构介绍
Apache 不能直接跟MySQL直接沟通,要通过PHP Moudule媒介
下图中,动态文件指比如密码的校验,网页论坛的更新,修改,会与MySQL交互。而静态文件是指网页上本有的一些图片
2. MySQL/MariaDB介绍
3. MySQL 安装
####安装时遇到的问题
& 初始化生成目录时提示需要安装相应依赖包
用命令 yum list |grep perl |grep -i dumper 安装依赖包,然后再进行初始化 (echo $? 命令来测试初始化是否成功)
&. 遇到提示如下
"InnoDB: ./ibdata1 can't be opened in read-write mode"
解决方案:
、usr/
####
指定配置文件所在路径
& 关basedir 和datadir的定义
& 遇到报错如下
Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
解决方案:
重新初始化数据库即可
shell> /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data`
####开启与关闭mysqld
/etc/init.d/mysqld start && service mysqld start
kill all mysqld(建议,kill all 会暂时停止读写操作,把没有完成写入磁盘里去的数据,慢慢的写进去,直到写完成之后才会把进程杀死) && kill + PID; 同样不推荐 kill -9 会导致丢数据
mysyql 下有两个常用的引擎 innodb (类似于oracle,存储比较大),myisam(存储比较小)
4. 安装Mariadb
5. 安装Apache
###enable-so 是指支持动态扩展模块
enable-mods-shared=most 指的是支持绝大多数动态扩展模块
####在安装apr-util时候遇到如下问题
此类问题解决方案是安装expat
####在安装httpds时候遇到如下问题
解决方案安装相应(通常情况下安装的是-devel或-lib)
Details Steps:
1.
6. 安装PHP5
目前绝大多数企业都在使用5版本,因为好多企业对7版本不兼容
6.1 Detailed Step
6.1.1 下载PHP 包 并解压
wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2--2018-09-10 11:22:00-- http://cn2.php.net/distributions/php-5.6.32.tar.bz2
tar jxf php-5.6.32.tar.bz2
6.1.2 编译源码包
./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
&出现第一个报错
解决方案: 安装xml2包
&出现第二个报错
解决方案; 安装OpenSSL包
&第三个报错
解决方案:安装BZip2包
&报错四
解决方案:安装libjpeg
&报错五
解决方案:安装libpng
&报错六
解决方案;安装freetype
&报错七
解决方案:先安装epel扩展源再安装libmcrypt
6.1.3 编译成功
6.1.4. make && make install
6.1.5. cp php.ini-production /usr/local/php/etc/php.int
确保目录不为空
6.2 php内容
而核心的内容在此目录下
查看加载的模块有哪些
7. 安装PHP7
步骤同PHP5,编码稍作更改
./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
****
一台机器上可以同时拥有php5&7,但是需要用时要指定好,不要弄混。
修改方式---进入配置文件注释掉不需要的
vim /usr/local/apache2.4/conf/httpd.conf
8. Apache和PHP结合
虽然Apache之前调用了PHP作为了他的模块,但是还不确定是否能解析PHP,在此之前要编辑一下httpd的配置文件
****当遇到下图问题时,如何去排查(ip无法访问,报错403)
首先看cmd上是否能ping 的通ip
再看 80端口是否通
此时,就意味着telnet没有打开,在控制面板中打开telnet
同时,如果要windows去访问他,要确保iptables打开80 端口
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
8.1 Detailed step (iptables要确保开启80端口)
8.1.1 vim /usr/local/apache2.4/conf/httpd.conf
$serverName
将ServerName打开
&Require all denied >> require all granted(一共两行 都要确保是granted)
****/usr/local/apache2.4/bin/apachectl -t 命令可用来查看配置文件语法是否有错误
/usr/local/apache2.4/bin/apachectl graceful 重新加载配置文件
注意,每次编辑配置文件之前都要快照,同时编辑后要-t查看是否有语法错误
&增加一行php相关的配置 如果不增加php没法解析 (在AddType下面添加)
&增加一个索引页(搜索Index,末尾处添加index.php)
&进而验证apache是否支持解析php(增加一个文件是不需要重启php的)
vi /usr/local/apache2.4/htdocs/1.php
&解析成功
8.2 如果未加载PHP未能解析,检查一下几项
& /usr/local/apache2.4/bin/apachectl -M 检查模块是否加载
如果没有此模块,查看是否有以下文件
如果有文件却并没有显示模块加载,那边要检查一下配置文件是否加载libphp5,如果没有也是不能解析的
再继续检查 AddType是否有php这一行