三十五、lamp经典组合搭建
一、安装mysql数据库
1.1 创建组和用户:
1)groupadd mysql
2)useradd mysql -g mysql -M -s /sbin/nologin
3)configure配置参数如下:
放入mysql.log,然后cat mysql.log|bash
./configure \
./configure \
--prefix=/application/php5.3.27 \
--with-apxs2=/application/apache/bin/apxs \
--with-mysql=/application/mysql \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir
报错:checking for termcap functions library... configure: error: No curses/termcap library found,安装yum install -y ncurses-devel后,再次进行configure即可。
4)make && make install
在这里需要注意,有些人吗,写入:make -j 4 是为了加快mysql的编译,其中,-j表示希望使用cpu核数。
5)测试 :echo $?
6)) 软件链接: ln -s /application/mysql5.1.72/ /application/mysql
二、初始化数据库
2.1增加配置文件
[root@djw3 mysql-5.1.72]# ll ./support-files/my-*.cnf
-rw-r--r-- 1 root root 4746 Nov 7 08:10 ./support-files/my-huge.cnf
-rw-r--r-- 1 root root 19779 Nov 7 08:10 ./support-files/my-innodb-heavy-4G.cnf
-rw-r--r-- 1 root root 4720 Nov 7 08:10 ./support-files/my-large.cnf
-rw-r--r-- 1 root root 4731 Nov 7 08:10 ./support-files/my-medium.cnf
-rw-r--r-- 1 root root 2499 Nov 7 08:10 ./support-files/my-small.cnf
可以看到,这里有五个文件,大小为 medium<small<large<huge<heavy,相应的对应硬件要求越高,相应的可以选择更高的配置文件
这里选择small文件,放到/etc/my.cnf下(etc表示配置的默认路径,my.cnf表示默认的配置文件)
[root@djw3 mysql-5.1.72]# cp ./support-files/my-small.cnf /etc/my.cnf
cp: overwrite `/etc/my.cnf'? y
2.2配置存放数据库数据的地方
[root@djw3 mysql5.1.72]# mkdir -p /application/mysql/data ---创建目录
[root@djw3 mysql5.1.72]# chown -R /application/mysql/ --授权
[root@djw3 application]# /application/mysql/bin/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql --初始化文件存放地方
basedir需要初始化的软件 datadir 初始化后存放的位置
如上,看到两个OK表示安装成功,还有一些提示信息,比如登录命令,启动mysql服务等。
如下,这里有两个文件,mysql目录里面有很多文件,轻易不要改动,都是一些系统文件,test目录是用户测试的文件,可以删除,这里保留
[root@djw3 application]# cd ./mysql/data/
[root@djw3 data]# ll
total 8
drwx------ 2 mysql root 4096 Nov 7 09:46 mysql
drwx------ 2 mysql root 4096 Nov 7 09:46 test
2.3登录数据库
[root@djw3 data]# /application/mysql/bin/mysqld_safe & --启动服务
[root@djw3 data]# netstat -lntup |grep "3306"
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 6268/mysqld --表示服务启动
登录: /application/mysql/bin/mysql
将登陆命令放到配置环境中,这样我们直接输入mysql就可以了,如下
[root@djw3 data]# grep mysql /etc/profile
PATH="/application/mysql/bin/:$PATH"
[root@djw3 data]# . /etc/profile --文件生效
2.4启动服务的命令除了在MySQL下/bin/mysqld_safe外,还可以通过配置文件./support-files/mysql.server进行启动,如下:
2.4.1将./support-files/mysql.server 拷贝到/etc/init.d/mysqld下面
[root@djw3 mysql-5.1.72]# cp ./support-files/mysql.server /etc/init.d/mysqld
2.4.2 添加开启自启动
[root@djw3 init.d]# chkconfig --add mysqld
[root@djw3 init.d]# chkconfig list
[root@djw3 init.d]# chkconfig mysqld on
[root@djw3 init.d]# chmod +x /etc/init.d/mysqld
测试:启动成功
[root@djw3 mysql-5.1.72]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!
综上:启动
/application/mysql/bin/mysqld_safe &
mysqladmin shutdown
/etc/init.d/mysqld start
/etc/init.d/mysqld stop
添加登陆密码 :/application/mysql/bin/mysqladmin -uroot password 'oldboy124'
[root@djw3 ~]# mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
登陆成功:输入正确的密码
优化,删除用户名是空的
删除两个命令是:drop user ""@djw3 和 drop user ""@localhost
查看版本和用户名
三、安装PHP工具
安装php是因为有一些动态数据需要通过PHP程序运行到mysql数据库中,而PHP程序依赖于PHP工具进行编译运行。
3.1检查安装PHP所需lib库,php会调用这些跟图形相关的函数库
yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y
3.2检查安装libiconv字符转换库工具(百度路径)
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --prefix=/usr/local/libiconv
make
make install
cd ../
3.3安装PHP工具包,这里安装php-5.3.27
[root@djw3 tools]# tar xf php-5.3.27.tar.gz
yum install libxslt-devel -y
yum insgtall openssl-devel -y
configure编译:
./configure \
--prefix=/application/php5.3.27 \
--with-apxs2=/application/apache/bin/apxs \ --这个需要指定apache的bin/apxs路径,通过apxs来增加php扩展模块到apache中
--with-mysql=/application/mysql \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-iconv=/usr/local/libiconv \
--enable-short-tags \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gnd-native-ttf \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir
make && make install
安装完毕后,可以查看:
如上图:libphp5.so就是apxs给apache插入的模块,同理在apache的配置文件中,也是存在的,
[root@djw3 application]# grep libphp5.so /application/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
当用户通过apache请求静态文件的时候,返回静态文件;当用户通过apache访问动态文件的时候,会调用php模块libphp5.so。
在安装文件中,可以看到这里有两个配置文件,分别是开发和生产文件,如下,通过diff对比两个文件,我们发现,许多配置项在production是关闭的,表示不想让用户看到或者黑客利用。
[root@djw3 php-5.3.27]# ls php.ini-
php.ini-development php.ini-production
3.4php配置文件
将上述配置文件中的生产模式文件php.ini-production安装在默认路径下/application/php/lib/php.ini
[root@djw3 php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
3.5配置apache支持php
上述是安装php默认产生的文件和配置,这里是配置apache支持php
3.5.1 311行下增加:(表示apache可以支持php)
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps
168行下增加:(访问php的首页)
DirectoryIndex index.php index.html
67行下增加(修改用户名,表示访问的用户为了更安全而考虑)
User www
Group www
检验是否可以连接mysql数据库:
//$link_id=mysql_connect('主机名','用户','密码');
$link_id=mysql_connect('localhost','root','oldboy124') or mysql_error();
echo "mysql successful by oldboy !";
}else{
echo mysql_error();
}
?>
至此,LAMP经典组合搭建完成。(linux+apache+mysql+php)
三十五、lamp经典组合搭建的更多相关文章
- 孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容
孤荷凌寒自学python第三十五天python的文件操作之针对文件操作的os模块的相关内容 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.打开文件后,要务必记得关闭,所以一般的写法应当 ...
- 程序员与年龄:四十岁普通开发、三十五岁首席架构、三十岁基层Leader
最近,有一个词儿特别热门--躺平.有没有人跟你说过:"躺平说起来容易,做起来更容易." 和躺平相对的是另外一个词--内卷,群聊的时候,已经很多次看过草卷起来了.jpg表情包.某些节 ...
- NeHe OpenGL教程 第三十五课:播放AVI
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- JAVA之旅(三十五)——完结篇,终于把JAVA写完了,真感概呐!
JAVA之旅(三十五)--完结篇,终于把JAVA写完了,真感概呐! 这篇博文只是用来水经验的,写这个系列是因为我自己的java本身也不是特别好,所以重温了一下,但是手比较痒于是就写出了这三十多篇博客了 ...
- Java进阶(三十五)java int与integer的区别
Java进阶(三十五)java int与Integer的区别 前言 int与Integer的区别从大的方面来说就是基本数据类型与其包装类的区别: int 是基本类型,直接存数值,而Integer是对象 ...
- Gradle 1.12用户指南翻译——第三十五章. Sonar 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第三十四关(基于宽字符逃逸POST注入)和三十五关
开始挑战第三十四关和第三十五关(Bypass add addslashes) 0x1查看源码 本关是post型的注入漏洞,同样的也是将post过来的内容进行了 ' \ 的处理. if(isset($_ ...
- “全栈2019”Java多线程第三十五章:如何获取线程被等待的时间?
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- Python进阶(三十五)-Fiddler命令行和HTTP断点调试
Python进阶(三十五)-Fiddler命令行和HTTP断点调试 一. Fiddler内置命令 上一节(使用Fiddler进行抓包分析)中,介绍到,在web session(与我们通常所说的se ...
随机推荐
- POJ 2993:Emag eht htiw Em Pleh
Emag eht htiw Em Pleh Time Limit: 1000MS Memory Limit: 65536KB 64bit IO Format: %I64d & %I64 ...
- Python csv文件操作
一.open文件打开和with open as 文件打开的区别 file= open("test.txt","r") try: for line in file ...
- 18 12 27 css 盒模型使用 以及相关技巧问题 元素溢出 块元素、内联元素、内联块元素
盒子模型的实际尺寸 盒子的width和height设置的是盒子内容的宽和高,不是盒子本身的宽和高,盒子的真实尺寸计算公式如下: 盒子宽度 = width + padding左右 + border左右 ...
- Centos6.5 安装zabbix3(收藏,非原创)
1.安装PHP Zabbix 3.0对PHP的要求最低为5.4,而CentOS6默认为5.3.3,完全不满足要求,故需要利用第三方源,将PHP升级到5.4以上,注意,不支持PHP7 rpm -ivh ...
- no.10京东咚咚架构演讲读后感
京东之与旺旺相当于淘宝,他们都是服务于买家和卖家的沟通.京东咚咚的功能比较简单,实现了一个 IM 的基本功能,接入.互通消息和状态. 另外还有客服功能,就是顾客接入咨询时的客服分配,按轮询方式把顾客分 ...
- C语言笔记 15_标准库&locale&math&setjmp&signal&stdarg&stddef
<locale.h> 简介 locale.h 头文件定义了特定地域的设置,比如日期格式和货币符号.接下来我们将介绍一些宏,以及一个重要的结构 struct lconv 和两个重要的函数. ...
- Class.forName(String className)解析
功能: Class.forName(xxx.xx.xx)返回的是一个类 Class.forName(xxx.xx.xx)的作用是要求JVM查找并加载指定的类, 也就是说JVM会执行该类的静态代码段 一 ...
- php对象:__autoload()函数及单入口文件,__set(), __get(), get_class_methods(),get_class_vars()
__autoload():当类中找不到相关类的时候,会自动执行__autoload()函数,可以自动加载相关文件 __set() : 当对类的私有变量进行调用赋值时,自动调用该方法. __get() ...
- UVALive 3983 捡垃圾的机器人 DP
这个题目我最初的做法沿用树形DP的做法,设置一个 dp[i][0]表示机器人在i点不回去的最短路径,dp[i][1]表示机器人在i点回去的最短路径,规划方向为i-1向i转移,结果发现这个不能用树形的结 ...
- 二十三种设计模式 python实现
设计模式是什么? 设计模式是经过总结.优化的,对我们经常会碰到的一些编程问题的可重用解决方案.一个设计模式并不像一个类或一个库那样能够直接作用于我们的代码.反之,设计模式更为高级,它是一种必须在特定情 ...