MagicLinux+MySQL5+PHP5+Apache2+phpMyAdmin

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

1.安装Mysql
tar -zxvf mysql-5.0.51a-linux-i686-glibc23 /usr/local/mysql
cd /usr/local/
cd mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cd /var/run/
mkdir mysqld
touch mysqld.pid
chown -R mysql mysqld .
cd mysqld
touch mysqld.pid
cd /usr/local/mysql
bin/mysqld_safe --user=mysql &
./bin/mysql
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
解释:如果mysql服务器成功启动后,就能在/usr/local/mysql/var.采用这一选项,通常会出错,建议不

配置用默认的。默认会在/tmp/mysql.sock.目录中看到mysql.sock文件。而使Mysql运行时产生错误。
cp /usr/local/mysql/bin/mysql.server /etc/init.d/mysql
/usr/local/mysql/bin/mysql.server start (启动start 关闭stop  重启restart)

此时运行:/usr/local/mysql/bin/mysql即可进入mysql界面。
Mysql的root密码为空,登录phpMyAdmin时存在安全漏洞!
解决方法:
进入目录:/usr/local/mysql/bin/ 输入命令:
./mysqladmin -u root password "your password"

让Mysql随服务器启动:
编辑文件:/etc/rd.local向其中添加:/usr/local/mysql/bin/mysql.server start

MYSQL知识扩展:

=====================
另一种安装mysql的方法:
=====================
安装 Mysql5
groupadd mysql
useradd -g mysql mysql

tar -zxvf mysql-5.0.17.tar.gz 
cd mysql-5.0.17 
./configure --prefix=/usr/local/mysql --enable-assembler --with-mysqld-ldflags=-all-static

--with-extra-charsets=all 
--with-big-tables --with-charset=utf8 --with-collation=utf8_unicode_ci 
make 
make install
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
cd /usr/local/mysql/
bin/mysql_install_db --user=mysql
chown -R root . 
chown -R mysql var 
chgrp -R mysql .
启动服务:
/usr/local/mysql/share/mysql/mysql.server start (启动start 关闭stop  重启restart)
键入mysql回车就可已看到欢迎界面。说明我们已成功安装了mysql
说明: 
--with-extra-charsets=all 对多语言支持
--with-unix-socket-path=/usr/local/mysql/var/mysql.sock 这个是指定mysql服务启动后。联机套接字

文件所处的位置和文件名,也就是说,如果mysql服务器成功启动后,就能在/usr/local/mysql/var.采用

这一选项,通常会出错,建议不配置用默认的。默认会在/tmp/mysql.sock.
目录中看到mysql.sock文件。

2.安装 apache

tar -xvzf httpd-2.2.8.tar.gz
cd httpd-2.2.8
./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so
make;make install

让Apache随服务器启动:
编辑文件:/etc/rd.local向其中添加:
/usr/local/apache2/bin/apachectl start

配置Apache:
修改/usr/local/apache2/conf/httpd.conf
2.1#ServerName www.example.com:80
ServerName 192.168.0.205:80
2.2ServerRoot "/usr/local/apache2"[此处一般不修改]
2.3Listen 80[此处一般不修改]
2.4#ServerAdmin you@example.com
ServerAdmin yunhuizheng2002@163.com
2.5#DocumentRoot "/usr/local/apache2/htdocs"
DocumentRoot "/usr/local/www"
2.6AddDefaultCharset utf8
保存退出。
2.7chown -R root "/usr/local/www"
添加虚拟目录[此处常用于phpMyAdmin的指向,当然也可用于其他]:找到# Alias /webpath

/full/filesystem/path并在其下增添代码
注:以下代码是指向/usr/local/phpMyAdmin目录的,意思是在浏览器地址栏中输入:

http://localhost/phpMyAdmin即可访问服务器/usr/local/phpMyAdmin目录中的网页文件。
    
    Alias /phpMyAdmin "/usr/local/phpMyAdmin"
    <Directory "/usr/local/phpMyAdmin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
    </Directory>

问题1:Apache启动时出现的:问题解决:
Starting   httpd:   (98)Address   already   in   use:   make_sock:   could   not   bind  

to   address   0.0.0.0:80    
no   listening   sockets   available,   shutting   down    
为什么apache不能重启 
netstat -natup |grep 80 看看80端口是那个进程占用了 
由于httpd 占有了80端口 
kill

问题2:又出现了新的问题:页面"您无权查看该网页"!!
此问题的解决并没有多么高明,以下是解决的方法:
1、问题的原因是由于所设置的目录权限,没有进行明确设置导致。具体如何设置还没有解决。
2、基于上述原因我采取了折衷做法,将网页目录设为:/usr/local/www也就是与apache2位于同一父目录

3.安装php
3.1安装libpng

tar -xvzf libpng-1.2.8.tar.gz
cd libpng-1.2.8
cp scripts/makefile.std makefile
make
make install

3.2安装 jpeg6
建立目录:
# mkdir -p /usr/local/module/jpeg6
# mkdir -p /usr/local/module/jpeg6/bin
# mkdir -p /usr/local/module/jpeg6/lib
# mkdir -p /usr/local/module/jpeg6/include
# mkdir -p /usr/local/module/jpeg6/man
# mkdir -p /usr/local/module/jpeg6/man1
# mkdir -p /usr/local/module/jpeg6/man/man1
# cd /home/zheng/linuxweb
# tar -zvxf jpegsrc.v6b.tar.gz
# cd jpeg-6b
# ./configure --prefix=/usr/local/module/jpeg6 --enable-shared --enable-static
# make; make install
* jpeg6安装文件中没有写创建目录的命令
3.3安装libpng
安装步骤如下
# cd /home/zheng/linuxweb
# tar -zvxf libpng-1.2.16.tar.gz
# cd libpng-1.2.16
# cp scripts/makefile.std makefile
# make; make install
3.4安装 freetype
# cd /home/zheng/linuxweb
# tar -zvxf freetype-2.3.1.tar.gz
# cd freetype-2.3.1
# ./configure --prefix=/usr/local/module/freetype
# make;make install
3.5安装zlib
这个一般不用安装
# cd /home/zheng/linuxweb
#tar -zxvf zlib-1.2.3.tar.gz
#cd zlib.1.2.3
# ./configure
# make;make install
3.6安装Curl库
这个一般不用安装
# cd /home/zheng/linuxweb
# tar -zxvf curl-7.18.1.tar.gz
# mkdir -p /usr/local/curl
# ./configure --prefix=/usr/local/curl
# make; make install
3.7安装GD
# cd /home/zheng/linuxweb
# tar -zvxf gd-2.0.34.tar.gz
# mkdir -p /usr/local/module/gd
# cd gd-2.0.33
# ./configure --prefix=/usr/local/module/gd \
> --with-png \
> --with-jpeg-dir=/usr/local/module/jpeg6 \
> --with-freetype=/usr/local/module/freetype \
> --with-zlib
# make; make install

3.8安装php5,php5必须有libxml2支持!编译通不过大部分是由于这个模块
a.安装libxml2
# cd /home/zheng/linuxweb
# tar -zxf libxml2-2.6.26.tar.gz
# cd libxml2-2.6.26
# mkdir -p /usr/local/module/libxml2
# ./configure --prefix=/usr/local/module/libxml2
# make; make install

b.安装 libxslt(可选安装,你可以不安装)
# cd /home/zheng/linuxweb
# tar -zxf libxslt-1.1.15.tar.gz
# mkdir -p /usr/local/module/libxslt
# cd libxslt-1.1.17
# ./configure --prefix=/usr/local/module/libxslt --with-libxml-

prefix=/usr/local/module/libxml2
# make; make install

c.安装php5
# cd /home/zheng/linuxweb
# tar -zvxf php-5.2.1.tar.gz
# mkdir -p /usr/local/php
# cd php-5.2.1
# ./configure --prefix=/usr/local/php /
--with-apxs2=/usr/local/apache2/bin/apxs /
--with-mysql=/usr/local/mysql /
--with-xml /
--with-png /
--with-jpeg-dir=/usr/local/module/jpeg6 /
--with-zlib /
--with-freetype-dir=/usr/local/module/freetype /
--with-gd=/usr/local/module/gd /
--with-curl /
--enable-track-vars /
--disable-debug /
--enable-url-includes /
--enable-sockets /
--enable-force-cgi-redirect /
--enable-calendar /
--with-config-file-path=/etc /
--enable-magic-quotes /
--enable-ftp /
--enable-gd-native-ttf /
--with-ttf /
--with-gdbm /
--with-gettext /
--with-iconv /
--enable-mbstring=all /
--enable-memory-limit /
--with-libxml-dir=/usr/local/module/libxml2 /
--with-xsl=/usr/local/module/libxslt /
--enable-xslt
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini (别忘记了呵呵)
如果通不过,运行下面2行
# cp php.ini-dist /usr/local/lib/php.ini
# cp php.ini-dist /etc/php.ini

其中./configure 后的
--prefix=/usr/local/php
--with-apxs2=/usr/local/apache2/bin/apxs
--with-mysql=/usr/local/mysql
--with-xml
是必要的选项
--with-png /
--with-jpeg-dir=/usr/local/module/jpeg6 /
--with-gd=/usr/local/modules/gd /
--with-zlib /
--with-freetype-dir=/usr/local/module/freetype /
这是让PHP支持GD库的配置选项
后面都是一些 要使用的PHP 函数库 可以根据自己的喜好 删除或增加
重新配置apache2让他支持php。
配置 httpd.conf 让apache支持PHP
# vi /usr/local/apache2/conf/httpd.conf
找到 AddType application/x-gzip .gz .tgz 在其下添加如下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
=================================================
整合apache2和php5
---------------------------------参考文件
apache 配置文件及目录是:
/usr/local/apache2/conf/httpd.conf
apache 默认存放主页的位置是:
/usr/local/apache2/htdocs
以下是配置文件里面的信息:(有的地方要做修改)
ServerRoot "/usr/local/apache2"
这是指定apache程序所在的目录,比如日志文件、配置文件等目录。
DocumentRoot "/usr/local/apache2/htdocs"
这个是存放网页的目录
<Directory "/usr/local/apache2/htdocs">
这一句应该和DocumentRoot的目录保持一致。
找到 DirectoryIndex index.html
改为 DirectoryIndex index.html index.html.var index.htm index.php
找到 AddType application/x-gzip .gz .tgz 
加        AddType application/x-httpd-php .php (注意空格)
           AddType application/x-httpd-php-source .phps
添加 AddDefaultCharset utf8 使apache默认支持utf8字符集
保存配置文件就重启apache 的守护进程。
/usr/local/apache2/bin/apachectl restart(start/stop)
=================================================
重启apache
# /usr/local/apache2/bin/apachectl restart

--------------------
php.ini文件的寻找
--------------------
关于php.ini这个文件,我在/usr/local/php和/usr/bin和/usr/local/bin下始终没有找到。
最后还是在源文件中提取出来的,也就是PHP 5.2.gz中的php.ini-recommended,将其改名为php.ini。

然后复制到目录:/usr/local/php/lib/下面。


======================
最后安装phpMyAdmin
======================
在目录/usr/local/下新建一个目录:phpMyAdmin,将phpMyAdmin压缩包中的所有文件解压到此新建的文件

夹中。然后将libraries子文件夹中的config.default.php复制到phpmyadmin文件夹中,并重命名为

config.inc.php。
打开config.inc.php,找到
$cfg['Servers'][$i]['auth_type']     = 'config';

将其修改为
$cfg['Servers'][$i]['auth_type']     = 'http';
打开Apache的配置文件httpd.conf,找到 # Alias /webpath /full/filesystem/path,在下面添加一下代

码(具体路径根据自己的情况修改):
======================
此为创建活动目录,
活动目录的网址为:http://127.0.0.1/活动目录。
======================
Alias /phpMyAdmin "/usr/local/phpMyAdmin"
<Directory "/usr/local/phpMyAdmin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
保存httpd.conf。在命令提示符中执行 /usr/local/apache2/bin/apachectl restart 重新启动Apache。

 

=====
测试
=====
1.在/usr/local/www[如果你未对文件httpd.conf进行修改的话目录应为/usr/local/apache2/htdocs]目

录里建一内容为:


<?php
    phpinfo();
?>

的PHP文件,命名为index.php, 输入URL地址:
http://127.0.0.1/index.php
如果有网页显示,则表示成功。


2.测试MySQL和phpMyAdmin是否正确安装
在浏览器中,打开http://localhost/phpMyAdmin。在出现的对话框中输入MySQL的管理员帐号(root)和

密码。安装成功!!

======
mysql设置密码
======
在初次登录http://localhost/phpMyAdmin时,用户名为root,密码为空。进入后在首页的下方有这样的文

字:
您配置文件中的设定与 MySQL 默认权限账户对应(没有密码的 root)。您的 MySQL 服务器使用默认值运行

当然没有问题,不过这样的话,被入侵的可能性会很大,您真的应该先补上这个安全漏洞。

==
原因分析
==

  刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全隐患,对于一些重要

的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除、root帐户设置密码,可用如下命令进行:


====
附录

====
1.Mysql的root密码为空,登录phpMyAdmin时存在安全漏洞!
解决方法:
进入目录:/usr/local/mysql/bin/ 输入命令:
./mysqladmin -u root password "your password"

更改之前root有密码的情况,假如为123456 
./mysqladmin -u root -p123456 password "your password"

mysql 添加用户
建一新資料庫: 
以mysql最高管理者,在mysql>create database XXXXX; 
xxxxx即為新建之資料庫名

在MySQL中如何增加一個新用戶,即在一個資料庫中增加一個帶密碼的新用戶來訪問它。
可以用GRANT命令,格式如下:
GRANT 許可權 ON 庫名.表名 TO 新用戶名@主機名 IDENTIFIED BY '密碼'; 
grant all on husidb.* to john@localhost identified by '201314';

grant all on discuz.* to john@localhost identified by '201314';

2.制定系统自动重启/关机脚本
解决方法: 
vi /etc/rc.local在其中添加以下两行中的一行:
因为只能执行第一个shutdown命令
shutdown -r 13:00   #服务器在每天的13:00自动重新启动
shutdown -h 21:00   #服务器在每天的21:00自动关闭机器
注意:
一旦你的脚本开始运行,那么reboot命令就不能再用,系统会出现:shutdown: already running.的信息


这时怎么办呢?呵呵,你可以输入命令:init 6来重启机子。因为init命令是所有进程的祖先。

查看当前系统进程的列表命令:ps ax 
若要显示进程以及它们的所有者:ps aux 
通过命令:"ps -ax | grep shutdown"你可以看到重启和关机两个进程。

或许你的系统时间和你所知道的标准时间不一样,那么,你可以运行date命令,如下:
如:设置时间为上午9点16分
命令:# date -s 09:16:00

3.关闭不必要的开机自检,加快开机速度。

4.卸载Linux系统中多余的程序,释放更多的磁盘空间。

5.phpBB3论坛相关权限
[root@zhijiaozhongxin www]# chmod 777 cache
[root@zhijiaozhongxin www]# chmod 777 files
[root@zhijiaozhongxin www]# chmod 777 images
[root@zhijiaozhongxin www]# chmod 777 store/
[root@zhijiaozhongxin www]# chmod 777 config.php 
[root@zhijiaozhongxin www]# chmod 777 images/avatars/upload/



本文转自tiancong 51CTO博客,原文链接:http://blog.51cto.com/tiancong/656503

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 关系型数据库 MySQL
PHP与MySQL动态网站开发:从基础到实践####
本文将深入探讨PHP与MySQL的结合使用,展示如何构建一个动态网站。通过一系列实例和代码片段,我们将逐步了解数据库连接、数据操作、用户输入处理及安全防护等关键技术点。无论您是初学者还是有经验的开发者,都能从中获益匪浅。 ####
|
2月前
|
安全 关系型数据库 MySQL
PHP与MySQL动态网站开发实战指南####
——深入探索LAMP栈下的高效数据交互与处理技巧 ####
|
1月前
|
关系型数据库 MySQL PHP
php实现一个简单的MySQL分页
通过本文的详细步骤和代码示例,我们实现了一个简单的PHP MySQL分页功能。主要步骤包括计算总记录数、设置分页参数、查询当前页的数据以及生成分页链接。这种分页方式适用于大多数Web应用,能够有效提升用户体验和页面响应速度。
34 4
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
2月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效协同开发策略####
本文深入探讨了PHP与MySQL在Web开发中的协同工作机制,通过优化配置、最佳实践和高级技巧,展示了如何提升数据库交互性能,确保数据安全,并促进代码可维护性。我们将从环境搭建讲起,逐步深入到查询优化、事务管理、安全防护及性能调优等核心环节,为开发者提供一套实战驱动的解决方案框架。 ####
|
1月前
|
SQL 关系型数据库 MySQL
PHP与MySQL的高效交互:从基础到实践####
本文深入探讨了PHP与MySQL数据库之间的高效交互技术,涵盖了从基础连接到高级查询优化的全过程。不同于传统的摘要概述,这里我们直接以一段精简代码示例作为引子,展示如何在PHP中实现与MySQL的快速连接与简单查询,随后文章将围绕这一核心,逐步展开详细讲解,旨在为读者提供一个从入门到精通的实战指南。 ```php <?php // 数据库配置信息 $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "test_db"; // 创建连接 $conn = new mysqli($se
36 0
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的深度整合:构建高效动态网站####
在当今这个数据驱动的时代,掌握如何高效地从数据库中检索和操作数据是至关重要的。本文将深入探讨PHP与MySQL的深度整合方法,揭示它们如何协同工作以优化数据处理流程,提升网站性能和用户体验。我们将通过实例分析、技巧分享和最佳实践指导,帮助你构建出既高效又可靠的动态网站。无论你是初学者还是有经验的开发者,都能从中获得宝贵的见解和实用的技能。 ####
31 0
|
22天前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
50 3
|
22天前
|
安全 关系型数据库 MySQL
MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!
《MySQL崩溃保险箱:探秘Redo/Undo日志确保数据库安全无忧!》介绍了MySQL中的三种关键日志:二进制日志(Binary Log)、重做日志(Redo Log)和撤销日志(Undo Log)。这些日志确保了数据库的ACID特性,即原子性、一致性、隔离性和持久性。Redo Log记录数据页的物理修改,保证事务持久性;Undo Log记录事务的逆操作,支持回滚和多版本并发控制(MVCC)。文章还详细对比了InnoDB和MyISAM存储引擎在事务支持、锁定机制、并发性等方面的差异,强调了InnoDB在高并发和事务处理中的优势。通过这些机制,MySQL能够在事务执行、崩溃和恢复过程中保持
54 3
|
22天前
|
SQL 关系型数据库 MySQL
数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog
《数据库灾难应对:MySQL误删除数据的救赎之道,技巧get起来!之binlog》介绍了如何利用MySQL的二进制日志(Binlog)恢复误删除的数据。主要内容包括: 1. **启用二进制日志**:在`my.cnf`中配置`log-bin`并重启MySQL服务。 2. **查看二进制日志文件**:使用`SHOW VARIABLES LIKE &#39;log_%&#39;;`和`SHOW MASTER STATUS;`命令获取当前日志文件及位置。 3. **创建数据备份**:确保在恢复前已有备份,以防意外。 4. **导出二进制日志为SQL语句**:使用`mysqlbinlog`
72 2

推荐镜像

更多