Linux操作系统:Linux操作系统是整个LAMP架构的基础部分,提供用于支撑Web站点的操作系统,为其他的组件提供了更好的稳定性、兼容性
Apache网站服务器:为LAMP架构的前端,功能强大、稳定性良好(性能优化)
MySQL数据库服务器:为LAMP架构的后端,是一款应用非常广泛的数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息、客户资料等都可以存储到MySQL数据库
PHP、Perl、Python网页编程语言:如今最为常见的就是PHP语言。Python语言现如今多用于自动化运维。
主机IP假设为:192.168.10.1 主机名假设为:abc
CentOS7系统默认可能会安装MariaDB,因此查询是否已经以rpm方式安装,若有即卸载。
# rpm -e mariadb
2.安装mysql运行所需依赖软件
# yum install -y gcc gcc-c++ make ncurses-devel autoconf lrzsz
ncurses 字符终端处理库,包括面板和菜单等功能
autoconf //兼容多系统进行make编译
上传 cmake、mysql至服务器(需要用rz命令上传对应的软件压缩包)
# tar zxvf cmake-2.8.6.tar.gz -C /usr/src
# cd /usr/src/cmake-2.8.6
# ./configure
# make && make install
3.编译安装mysql
# tar zxf mysql-5.6.36.tar.gz -C /usr/src
# cd /usr/src/mysql-5.6.36/
# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
-DCMAKE_INSTALL_PREFIX //程序安装路径
-DSYSCONFDIR //程序初始化目录,配置文件存放目录
-DDEFAULT_CHARSET //指定字符集
-DDEFAULT_COLLATION //指定字符集校对规则
-DWITH_EXTRA_CHARSETS //支持额外的字符集
官方对相关配置选项的说明:
https://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html
# make && make install
# useradd -M -s /sbin/nologin mysql //创建mysql运行用户和组
4.配置mysql
# chown -R mysql:mysql /usr/local/mysql
# cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf //复制mysql主配置文件到运行目录
初始化数据库,以mysql用户运行初始化脚本并制定mysql数据库运行目录和数据存放目录
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
--user //指定运行用户
--basedir //指定安装目录
--datadir //指定数据库数据存放位置
修改属主权限
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/data
设置变量环境,方便执行mysql命令,若不设置则只能够使用绝对路径命令执行
# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
# . /etc/profile
添加为系统服务,方便控制mysql服务
# cp /usr/local/mysql/support-files/mysql.server /usr/local/mysql/bin/mysqld.sh
# vim /lib/systemd/system/mysqld.service
[Unit]
Description=Mysql Server
After=mysqld.target
[Service]
User=mysql
Type=forking
PIDFile=/usr/local/mysql/data/(此处为主机名,可用hostname查询主机名,假设为abc).pid
ExecStart=/usr/local/mysql/support-files/mysql.server start
ExecStop=/usr/local/mysql/support-files/mysql.server stop
[Install]
WantedBy=multi-user.target //Minimal 或者桌面/graohical.target
# systemctl daemon-reload //重载systemctl守护进程
# systemctl enable mysqld.service //将mysqld服务设置为开机自启
以下两种方法都可查询开机是否启动:
# systemctl list-unit-files | grep mysqld
# systemctl is-enabled mysqld.service
# systemctl start mysqld
# netstat -anpt | grep mysqld //可查看mysql运行状态,端口号为tcp:3306
管理使用mysql数据库
# mysql -u root -p //u指定用户,p指定密码,默认root无密码,回车即可
# mysqladmin -u root -p password //修改密码为root用户密码为123,需要回车输入原密码,默认密码为空
数据库中所有数据存放在/usr/local/mysql/data/中
通过用户登录mysql界面后需要执行mysql操作语句才能够实现管理mysql数据库
每条语句最后应当加上";" 输入语句可以不区分大小写,但是参数必须区分。
php/超文本预处理器是一种通用开源脚本语言,语法吸收了C语言、Java和Perl的特点,利于学习,使用广泛,拥有更好的网页执行速度,而且支持绝大多数流行的数据库,主要适用于Web开发领域。
PHP 能做什么?
PHP 可以生成动态页面内容
PHP 可以创建、打开、读取、写入、关闭服务器上的文件
PHP 可以收集表单数据
PHP 可以发送和接收 cookies
PHP 可以添加、删除、修改您的数据库中的数据
PHP 可以限制用户访问网站上的一些页面
PHP 可以加密数据
1.准备安装环境
卸载之前rpm方式安装的PHP程序
# rpm -e php php-cli php-ldap php-common php-mysql --nodeps
相关组件及依赖包:
# yum install -y zlib-devel libxml2-devel xz-devel
2.安装三个加密扩展工具库:libmcrypt、mhash、mcrypt(同样需要通过rz命令上传对应压缩包)
# tar zxvf libmcrypt-2.5.8.tar.gz -C /usr/src/ //php加密算法扩展库程序
# cd /usr/src/libmcrypt-2.5.8/
# ./configure
# make && make install
# ln -s /usr/local/lib/libmcrypt.* /usr/lib/
# tar zxvf mhash-0.9.9.9.tar.gz -C /usr/src/
# cd /usr/src/mhash-0.9.9.9/
# ./configure
# make && make install
# ln -s /usr/local/lib/libmhash.* /usr/lib/
# cd
# tar zxvf mcrypt-2.6.8.tar.gz -C /usr/src/
# cd /usr/src/mcrypt-2.6.8/
# ./configure //如若提示版本小于2.5,则执行以下命令设置变量重新配置
# vim /etc/profile //编辑系统文件,在最后新起一行加入以下内容:
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH
# . /etc/profile
# ./configure //设置变量后重新配置
# make && make install
3.安装PHP
# yum install -y libjpeg-devel libpng-devel freetype-devel libtool* libtool-ltdl* libtool-ltdl-devel GD插件,提供验证码功能
# tar zxf php-5.5.38.tar.gz -C /usr/src
# cd /usr/src/php-5.5.38/
# ./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql/ --with-config-file-path=/usr/local/php5 --enable-mbstring --with-png-dir --with-freetype-dir --with-jpeg-dir --with-gd --libdir=/usr/lib64 --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-zip
--prefix:指定安装目录
--with-mcrypt:加载数据加密等扩展工具支持
--with-apxs2:指定apache提供的apxs模块支持程序位置
--with-mysql:指定mysql数据库安装位置
--with-config-file-path:指定php配置文件php.ini将要存放的位置
--enable-mbstring:启用多字符串功能
--with-mysqli:mysql扩展功能
make: *** [sapi/cli/php] 错误 1
# vim Makefile
EXTRA_LIBS = -liconv //88行左右此处添加如下内容: -liconv
或者:
#make clean
#make
# make && make install
4.设置LAMP运行环境
主要设置php.ini,用于确定PHP的运行参数,httpd.conf:用于加载libphp5.so,以便支持PHP网页
1.PHP.ini设置
PHP的配置文件在解压目录下,有两个配置文件,分别用于开发与生产
/usr/src/php-5.5.38/php.ini-development //开发版,用于测试、学习
/usr/src/php-5.5.38/php.ini-production //生产版,用于生产环境
将PHP.ini配置文件拷贝至安装目录下
# grep -v "^;" /usr/src/php-5.5.38/php.ini-development | grep -v "^$" > /usr/local/php5/php.ini
# vim /usr/local/php5/php.ini
在[PHP] 的下一行加入如下:
default_charset = "utf-8"
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20M
post_max_size = 8M
extension = php_mysqli.dll
short_open_tag = On //修改自带的为on
分别是设置默认字符集、允许文件上传、上传文件最大限制、每个请求最多能够上传总数、通过post提交的数据量限制、识别PHP语法标记、以及添加mysql支持
5.添加优化模块(php的补丁包)
# tar zxf zend-loader-php5.5-linux-x86_64_update1.tar.gz -C /usr/src/
# cd /usr/src/zend-loader-php5.5-linux-x86_64/
# cp ZendGuardLoader.so /usr/local/php5/
# vim /usr/local/php5/php.ini //加入优化模块 [PHP]中
zend_extension=/usr/local/php5/ZendGuardLoader.so
zend_loader.enable=1
6.httpd.conf配置调整
# vim /usr/local/httpd/conf/httpd.conf
找到如下项,大概在159行左右,在此项下一行添加如下二行内容:
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php //此行为添加项
LoadModule rewrite_module modules/mod_rewrite.so //此行为添加项
找到如下项,大概在261行左右,在末尾加上"index.php",效果如下图
DirectoryIndex index.html index.php //index.php为后添加
# systemctl restart httpd
1.设置php网页进行测试
# vim /usr/local/httpd/htdocs/test.php
添加如下内容:
<?php
phpinfo( );
?>
用于显示服务器PHP环境信息的网页
客户机进行访问测试:http://192.168.1.10/test.php
2.测试PHP是否能够访问Mysql数据库
# vim /usr/local/httpd/htdocs/test1.php //新建mysql连接网页
以下为php5.3推荐的写法,在5.5中被遗弃,因此在5.5中写以下内容后,虽然能够连接成功,但是会提示"不建议用mysql 而是用mysqli",因此5.5版本的php用第二部分的网页内容,主要是将MySQL改为了MySQLi
5.3适用网页内容:
<?php
$link=mysql_connect('localhost','root','123456'); //设置登录信息,连接mysql
if($link) echo "恭喜你,数据库连接成功!"; //连接成功后返回的结果
mysql_close(); //关闭连接
?>
5.5适用网页内容:
<?php
$link=mysqli_connect('localhost','root','123456');
if($link) echo "恭喜你,数据库连接成功!";
mysqli_close($link);
?>
# mysqladmin -u root -p password //设置mysql密码为 123456
Enter password: //默认密码为空 ,回车即可
New password:
Confirm new password:
客户机进行访问测试:http://192.168.1.10/test1.php
phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程序产生的HTML页面,也就是远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。
1.部署phpMyAdmin系统
1.解包并移动至网页根目录
# tar zxf phpMyAdmin-4.7.2-all-languages.tar.gz -C /usr/local/httpd/htdocs/
# cd /usr/local/httpd/htdocs
# mv phpMyAdmin-4.7.2-all-languages/ phpMyAdmin
生成配置文件
# cd phpMyAdmin/
# cp config.sample.inc.php config.inc.php
浏览器访问
http://192.168.1.10/phpMyAdmin/
用户名密码均为mysql系统中的授权信息,如root 123456
出现的问题:
1.在配置php时,如出现"Sorry, I cannot run apxs. Possible reasons follow:"
解决方案:
# vim /usr/local/httpd/bin/apxs
#! /usr/bin/perl -w //将第一行修改为此内容
2.phpmyadmin在web界面进行登录无反应,解决方案:修改系统时间为当前时间即可修改