LAMP架构(Ⅰ)

./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

1b7b3698f694314cae73d3d59ace4e7371e.jpg

  • wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz

032a5e10acaf711cfc6c6408ef637a92038.jpg

初始化MySQL

把之前下载的包解压出来

tar  -zxvf mysql-5.7.23-linux-glibc2.12-x86_64.tar.gz

78e3946c131717a81f5be1001ae66f1c4f3.jpg

在创建一个运行MySQL的目录

LAMP架构(Ⅰ)_第1张图片

创建好目录之后进行初始化

cda85a3a3a0b9b3f65ff22e73c4d0011169.jpgcd3aa682a25b95231d667a8400aefd73118.jpg

配置文件

首先复制配置文件mysql的模板配置文件my-default.cnf,但是系统自带已经存在,我们只需要修改一下即可

5ac68cc1d16b722352cec37a1d827ca7023.jpgLAMP架构(Ⅰ)_第2张图片2d326a047350e3cbd8f7ebc49f3674a440a.jpg92cb5701abf6f06a135e69bc1c48a7abf99.jpg

增加到系统列表服务:chkconfig --add mysqld

53962fe203d4901af7dad0d020a9f07b6d2.jpg

启动mysqld的服务

  • 启动:service mysqld start
    - /etc/init.d/mysqld start
  • 关闭:service mysqld stop

fd0aa0f3fc9dc6fcb4ab4f1c87146754b20.jpg476cde921fafce76ddf6d01fc013945fe63.jpg

杀进程最好用killall 这样能够尽量保存数据不会丢失,kill直接杀掉进程数据可能会丢失。

在做mariadb安装之前可以用killall来杀掉进程MySQL服务

2.MariaDB安装

MariaDB和mysql同源,因此安装方式也是一模一样的

下载MariaDB包在电脑上下载之后进行传输文件 因为mariadb在Linux虚拟机上下载很慢下载好之后进行解压

147707fff2b3730da904d576e2ac21616b8.jpg

解压,并移到/usr/local/mariadb下

4a932c6dd2428d4b501fcb2943e11e66f57.jpg

初始化,此处和mysql一样

00c00dfe7edba9c3db56317b61d91d75203.jpg

974a2122d5170535e51be26ad5e27dd6ebe.jpg

把mariadb的默认配置文件与启动脚本文件复制一份,并改如下名称

8cfe57cf9a0a6fa822e894d4d5d76335697.jpg

编辑配置文件/etc/init.d/mariadb

22b856f255e71bfabe05c6b04b8d5e04e15.jpg6634665f87fa7ebe9867f6bfbb6c9b7627b.jpg

启动mariadb服务

e60aacfb88a6374a398653d59c0beff99c5.jpg

查看mariadb监听的端口

8c051fa83cf5ef0e89b20dc5361d8ea9826.jpg

因为刚才没有修改配置文件 /usr/local/mariadb/my.cnf,在那里面我们没有指定相应的目录,它会自动加载mysql的配置文件目录

ecfc75b885ebb45b60ce7b662a9b2e820f4.jpg

因此我们需要到/usr/local/mariadb/my.cnf里面指定datadir的路径修改好之后再停止mariadb服务

2552398fc3754b0c02747e9d0b77be979ed.jpg

2d76fc3fd1ba7ebc5e2ca38eff046d54478.jpg

再次启动mariadb服务

975c6a6cb7e236e617f40017fc21f3dccd4.jpg

3.Apache安装

分别下载:2.4.37源码包   apr-1.6.5   apr-util-1.6.1

9b07d0153e39876d764c8dc31b72bc63790.jpg

定义到apr-1.6.5目录下

安装包: ./configure --prefix=/usr/local/apr

e74ffd1c84f3dc216f46814c7eea291f92c.jpg

安装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

df395c63e0e817bd91a2a30adaa34336d23.jpg

在/apache2.4/bin/目录下

09fb69bf01bc9e8307e0054d102c12eed47.jpg

启动httpd服务

启动httpd服务:/usr/local/apache2.4/bin/apachectl start

a970d8529e158ad7cde63c3dcf9911a3388.jpg

4.安装PHP5

虽然目前最新版本的PHP为PHP7,但是还有批量的PHP5在使用,而且一些论坛软件不支持PHP7,因此也需要掌握PHP5和PHP7

a2abcc7de78f47cb2b303eb235821987014.jpg

进入php-5.6.32 目录下,进行配置

LAMP架构(Ⅰ)_第3张图片e112c106bde2cacc110886379211b6a2509.jpg

  • –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在验证是否安装正确

f108348109bf6828ba8d24c9c27f5924383.jpg130c8cbc246ddad053672d31ae2b7c8d28b.jpg

在安装PHP5需要安装很多库文件这时候可以使用yum list |grep 名字   进行模糊搜索。如果实在找不到可以在网上找。

1a7eede93f988c78327954ab7412bfad515.jpg

查看php5下有哪些模块:/usr/local/php/bin/php -m

LAMP架构(Ⅰ)_第4张图片

前面已经讲过php作为httpd的模块存在;因此php 不需要启动

查看httpd的模块;此时能看到 php5_module (shared)

LAMP架构(Ⅰ)_第5张图片

查看模块libphp5.so文件的权限

6498dc1e04265e5f9c64abcf10299209a8e.jpg

此时为配置文件里面的模块,增减#可以随用随取   不用就在前面注释掉

LAMP架构(Ⅰ)_第6张图片

php的参考配置文件

  • php.ini-production 生产环境用
  • php.ini-development 开发环境和测试环境下用

5.PHP7安装

先进入src下进行下载PHP7

41b8e8528db8474a4f06f47ec6da992bf39.jpg

解压之后进入php7目录编译安装

dd47ec913a71e4d851b24112bb1edce00d8.jpg

进行编译

./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

67c02c4d0ef5d197d127819ff62407a0b26.jpg

进行验证是否正确    echo $?

92608c2b4768fc2486515453c751f309a1d.jpg

make install 执行最后一步安装PHP7

6da52c50113dbe1f1d1593cb34e60c104f9.jpg

查看PHP7的配置模板

LAMP架构(Ⅰ)_第7张图片

查看httpd的模块;此时能看到 php5_module (shared)和 php7_module (shared);再次说明php是作为httpd的模块存在

LAMP架构(Ⅰ)_第8张图片

想用哪个可以到配置文件中进行注释掉来选取是是PHP7还是PHP5

6.Apache与PHP结合

Apache(httpd)的主配置文件:/usr/local/apache2.4/conf/httpd.conf

e2c30f4c8dbf6925e499e79759cf5f1d121.jpg69185f78ceaf17edfb699b1e80919d00a6c.jpg

启动httpd服务时总会有一些配置文件提醒好像是出错了一样这时候可以修改配置文件把那些提醒给去掉

612f432f0a8f84aefc744d87da70473026b.jpg

76072bb39f93798fb80412ccdc673141d0d.jpg

关闭httpd服务之后再重启httpd服务查看是否成功

LAMP架构(Ⅰ)_第9张图片

查看在网页上能否打开ip

先检查主机能否ping通自己的IP

LAMP架构(Ⅰ)_第10张图片6f730b6fd62d3d3fbc8dc16fcbe691163ec.jpg

在虚拟机上增加一条iptables规则    iptables -I INPUT -p tcp --dport 80 -j ACCEPT

之后再机器上显示9bb74c7859a7c6fd4e5deb9fd195b9a72ec.jpg

这里能够显示是因为

LAMP架构(Ⅰ)_第11张图片a0bdf6e99c9c77bd54eca8c90de17baf618.jpg370b20561298553235c473b019dab9727d6.jpg

增加一行让php解析在配置文件中

LAMP架构(Ⅰ)_第12张图片

增加一个索引页。就会直接跳转到主页

c750fad8f349b33ea2e64acf7970e8fd0f7.jpg

da309792b0206a961be76851884c77fde50.jpg

新建一个1.php文件

LAMP架构(Ⅰ)_第13张图片

在浏览器上进行查看能否解析车PHP

LAMP架构(Ⅰ)_第14张图片

php能够支持解析;那么把它加上#,代表不加载

#AddType application/x-httpd-php .php

问题总结

如果浏览器不能解析php,那么需要从以下几点来入手

第一步:查看有没有加载php模块

LAMP架构(Ⅰ)_第15张图片

第二步:查看没有php模块文件

d17cbb1d47f20d71826dc7995e2416897ea.jpg

第三步:前面两项有,在httpd.con的配置文件中,有加载模块

LoadModule php5_module modules/libphp5.so

第四步:之前都有,在httpd.con的配置文件中,有没有此项

AddType application/x-httpd-php .php

第五步:在httpd.con的配置文件中,下面加 index.php

加载PHP7

先把PHP5模块给注释掉只剩下PHP7

b7455584c73e1c54923414a5cce0757cb10.jpg0142cf2b84ad13c4d9ecdca3204dadc2849.jpg

在电脑浏览器上打开并查看PHP7的版本号

LAMP架构(Ⅰ)_第16张图片

转载于:https://my.oschina.net/u/4000361/blog/2966417

你可能感兴趣的:(php,网络,运维)