Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记

Linux下配LMAP环境,花了我好几天的时间。之前没有配置过,网上的安装资料比较混乱,加上我用的版本问题,安装过程中出现了一些错误,经过好几次安装,翻了好多资料,最后找出问题的所在,才把环境搭建好,对于高手来说,这或许不算什么,但对于一个刚入门的新人,却是不一样了,这篇文章记录着我的一些笔记,希望对于那些刚刚入门的人们有所帮助,仅作为参考。

安装首先我们得获得MySQL,Apache,PHP,WordPress的源码包,软件的官网如下:

MySQL: http://www.mysql.com

Apache: http://www.apache.org

PHP: http://www.php.net

WordPress: http://cn.wordpress.org

下载的方式有几种,你可以从电脑上下载,然后传到linux上。

在电脑上下可能有些朋友不知道怎么传到linux上,我使用的是一个远程登录软件Xshell 4,传输工具是Xftp 4。

注:免费软件 Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具。Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 Windows 平台安全连接 Linux 服务器,Xftp 则是安全传输客户端,支持 FTP 和 SFTP 协议,两者都支持标签化的会话窗口。这两者基本是都是配套存在的。

也可以从linux上下载:

使用wget url 这个指令,把源码包下载到linux下解压缩安装,如

sudo wget http://cn.wordpress.org/wordpress-3.5.1-zh_CN.tar.gz

sudo tar zxvf wordpress-3.5.1-zh_CN.tar.gz

因为我使用的系统是ubuntu的,普通用户需要有root执行权限的需要在前面加“sudo”,这是unbuntu的一个特色,其他的系统版本的可以不加。

下面开始安装:

安装MySQL

我安装的版本是mysql-5.0.95,在官网上一时找不到自己想要版本的朋友,可以从这个链接里找:ftp://mirror.csclub.uwaterloo.ca/mysql/Downloads/MySQL-5.0

安装之前为了尽量避免出错,我们现在安装几个需要的东西,gcc,g++, ncurses

缺少gcc,g++编译器会出现:

configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.

解决办法:sudo apt-get install build-essential或者

sudo apt-get install gcc

sudo apt-get install gcc-c++

如果系统是suselinux的朋友可以: zypper install gcc   zypper install gcc-c++

其他版本系统的执行: yum install gcc  yum install gcc-c++

缺少ncurses,MySQL的库文件会出现:

checking for termcap functions library... configure: error: No curses/termcap library found

解决办法:sudo apt-get install libncurses5-dev

步骤:

sudo wget ftp://mirror.csclub.uwaterloo.ca/mysql/Downloads/MySQL-5.0/mysql-5.0.95.tar.gz

sudo tar zxvf mysql-5.0.95.tar.gz

cd mysql-5.0.95

sudo ./configure --prefix=/usr/local/mysql --with-extra-charsets=all  //检测环境,指定安装目录

注:检测出缺少什么就安装什么,然后再重新编译

(这里--prefix=是这mysql的安装目录,--with-extra-charsets选项则是指定了MySQL可以支持的语言编码,这里设置为全部支持,具体使用哪种编码,可以在程序中指定。

另外还有再编译时候按个人需要来增加的一些参数:

--sysconfdir=/usr/local/etc

--libexecdir=/usr/local/sbin

--localstatedir=/var/lib/mysql

--enable-assembler

--with-charset=utf8

--with-collation=utf8_general_ci

--with-extra-charsets=gbk,gb2312,binary

--enable-thread-safe-client

--enable-local-infile

--with-pthread

--with-plugin-innobase

--without-bench

--without-readline

--with-mysqld-ldflags="-all-static -ltcmalloc"

--with-client-ldflags=-all-static

sudo make         //编译

sudo make install    //安装

添加用户,用户组并设置权限:

groupadd mysql                          //如果有了可以不执行

useradd -g mysql mysql     //如果有了可以不执行

sudo cp support-files/my-medium.cnf /etc/my.cnf

sudo cp support-files/mysql.server /etc/init.d/mysqld

sudo cd /usr/local/mysql

sudo chown -R root .      // 后面有小点

sudo chown -R mysql var

sudo chgrp -R mysql .      //后面有小点

sudo chmod +x /etc/init.d/mysqld

sudo chkconfig --add mysqld

sudo chkconfig --level 3 mysqld on

sudo bin/mysql_install_db --user=mysql

sudo bin/mysqld_safe --user=mysql &

启动MySQL:

  1. sudo service mysql start
  2. 进入MySQL安装目录下,/usr/local/mysql

sudo ./bin/mysql –u root

注:第一安装默认密码Passwrod为空,如果有密码的则加上密码,./bin/mysql –u root –p123456

netstat –lt  可以查看各个进程,看MySQL是否启动

#更换 MYSQL root用户密码

sudo /usr/local/mysql/bin/mysqladmin –u root password 'yourpassword'

还有一点需要说明,MySQL服务默认只允许从服务器本机连接,如果需要从远程连接,还需要在MySQL中设置相应的权限,并更新权限表,具体操作如下:

mysql> GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "123456";

mysql> flush privileges;

(注意前面的“mysql>”,这个操作是连接到MySQL服务后,在MySQL中进行的,而不是在操作系统中进行的)

(注:上面这个更改权限的例子,是使得可以从任意一台远程终端使用root用户连接MySQL服务器,用户应根据自己的实际需要进行设置)

安装Apache

安装的大体步骤跟MySQL差不多,我使用的源码包是httpd-2.2.9.tar.gz

从官网下载得到源码包后:

sudo tar zxvf httpd-2.2.9.tar.gz

cd httpd-2.2.9.tar.gz

sudo ./configure --prefix=/usr/local/apache --with-enable=so --enable-rewrite --enable-static-support

(注:apache编译起来较容易,关键是在配置httpd.conf)

sudo make

sudo make install

cd  /usr/local/apache

sudo ./bin/apachectl start

服务器启动后可以在浏览器中输入:http://ip,如果看到“It’ works!”说明安装成功!

Apache默认的web根目录为Apache安装目录下的htdocs目录,如果希望指定到其他目录,可以通过修改Apahce的配置文件实现,操作如下:
cd /usr/local/apahce/conf
sudo vi httpd.conf
找到“DocumentRoot "/usr/local/apache/htdocs"”,将"/usr/local/apache/htdocs"部分修改为希望使用的目录,此外,还需要找到 “<Directory "/usr/local/apache/htdocs">”,同样将"/usr/local/apache/htdocs"修改为希望使用的目录(比如:/var/www),保存退出。

这里需要注意,要修改默认的web根目录,需要同时修改这两项设置,只修改其中一个是无效的。

如果,你这两样都配置完后,你访问浏览器时出现:Forbidden You don't have permission to access / on this server.

那说明你的权限还是不够。

网上有许多文章介绍说,将

<Directory />                                   

Options FollowSymLinks                             

AllowOverride None                               

Order deny,allow                                

Deny from all                                 

</Directory>

它之间Deny from all修改为Allow from all,这是相当不负责任的说法,如果你这么做了,更对不起自己,这是禁止apache对根目录“/”以下所有内容禁止访问的设定,也是网站安全设置中最基本的设置,只开通对应网站根目录的权限就可以了,如果将整个服务器的根目录都开放,一但有人试图上传一段可执行代码在不应该出现的目录里,后果不堪设想....

我们可以设置目录权限,让你的目录树都有执行权限,可以设置755

sudo chmod 755 /var/www

如果依然无法访问的

chcon -R -t httpd_sys_content_t  /var/www

修改完成后,需要重启apahce服务,才能使新的配置生效,操作如下:
cd /usr/local/apache/bin
sudo ./apachectl restart

如果出现端口被占用而无法重启的,可以使用ps -ef | grep httpd查看PID

然后kill –l PID

也可以杀死同一组内的所有进程 killall httpd 然后再启动

安装PHP

安装PHP时也需要注意几个,安装前先安装几个需要的东东,libxml2-dev

sudo apt-get install libxml2-dev

可能需要的有

freetype-2.4.4.tar.gz

gd-2.0.35.tar.gz

jpegsrc.v6b.tar.gz

libpng-1.5.4.tar.gz

libtool-1.5.26.tar.gz

zlib-1.2.3.tar.gz

根据检测需要的再安装

下载 php-5.2.6.tar.gz

sudo tar zxvf php-5.2.6.tar.gz

cd php-5.2.6

sudo ./configure --prefix=/usr/local/php --with-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mysql=/usr/local/mysql/ --with-mysql-sock=/tmp/mysql.sock

完成后将会看到“Thank you for using PHP.”的字样,表明PHP已经配置成功了。

sudo make

sudo make test  //有的说make test可以不用

sudo make install

安装完PHP后,还需要手动修改一下Apache的配置,以便使Apache支持PHP,操作如下:
cd /usr/local/apache/conf
sudo vi httpd.conf
找到“AddType application”部分,在后面添加如下内容:
AddType application/x-httpd-php .php .php3 php5

AddType application/x-httpd-php-source .phps
(如果需要添加默认php索引文件名的支持,则需要找到“DirectoryIndex index.html ”,修改为“DirectoryIndex index.html index.php”),修改完成后保存退出。
此外,不要忘了将PHP安装目录中的php.ini-recommended文件拷贝到编译时指定的PHP配置文件目录/usr/local/php/etc下,在PHP源码包目录“php-5.2.6”中操作如下:
sudo cp php.ini-recommended /opt/php/etc/php.ini

注:php.ini-recommended是5.2版本中有,如果是5.3或者更高版本的,由于版本更新,这些文件有了新的命名:
php.ini-production对应于php.ini-recommended
php.ini-development对应于php.ini-dist
全部配置完成后,不要忘了重启apache,以便使新的配置生效。

为确认PHP安装是否成功,可以在web的根目录下(DocumentRoot的路径)创建一个index.php文件

sudo vi index.php

写入

<html>

<head><title>testphp</title></head>

<body>

<?php

phpinfo();

?>

</body>

</html>
保存退出,在浏览器中输入:http://ip/index.php,如果配置正确,就能看到刚刚配置好的服务器的相关信息,其中包括 Apache、MySQL以及PHP的版本、安装路径、配置情况等。如果看到的只是“phpinfo();”字样,说明apache没能正确支持PHP,请检查上述的配置过程是否都已经正确完成

安装WordPress

wordpress下载解压后只要把wordpress文件下的所有东西复制到解DocumentRoot下,再配置些信息就可以(不是复制wordpress目录,是下面的所有东西)

在配置前,先建立好数据库,

cd  /usr/local/mysql

sudo ./bin/mysql –u root p123456

建立wordpress数据库

mysql> create database wordpress;

建立wordpress用户,密码为123

  mysql> grant all on wordpress.* to wordpress@’%’ identified by '123';

mysql>flush privileges;

sudo wget http://cn.wordpress.org/wordpress-3.5.1-zh_CN.tar.gz

sudo tar zxvf wordpress-3.5.1-zh_CN.tar.gz

cd wordpress

sudo mv wp-config-sample.php wp-config.php

sudo vi wp-config.php

输入数据库信息:

  define('DB_NAME', 'wordpress'); // 数据库名称

  define('DB_USER', 'wordpress'); // 用户名字

  define('DB_PASSWORD', '123'); // 用户密码

define('DB_HOST', 'localhost'); // 访问的地址IP,根据你服务器IP来定

保存退出,然后测试,在浏览器中输入服务器的ip地址访问即可。

关于MySQL+Apache+PHP+WordPress的环境配置基本上已经完成,安装过程中可能因为大家的版本和环境不同而出现点差异,大家再参考点资料应该没有什么问题。

(转载)Linux下安装配置MySQL+Apache+PHP+WordPress的详细笔记的更多相关文章

  1. Linux下安装配置MySQL

    一.删除原来的MySQL 在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本. 1. 执行yum命令,删除MySQL的lib库,服务文件 yu ...

  2. Java学习笔记——Linux下安装配置MySQL

    山重水复疑无路,柳暗花明又一村 --游山西村 系统:Ubuntu 16.04LTS 1\官网下载mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz2\建立工作组:$su ...

  3. Linux下安装配置MySQL5.7服务器

    Linux下安装配置MySQL服务器 一.安装环境 ============ OS:centos6.8 MySQL:mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz ...

  4. Linux下安装配置与使用MySQL数据库

    Linux下安装配置与使用MySQL数据库 在Linux下安装做开发时往往少不了要使用到MySQL数据库,下面就Linux系统为例讲解一下,如何安装MySQL数据库,如何启用/停.止MySQL服务,如 ...

  5. 在linux下安装配置rabbitMQ详细教程

    在linux下安装配置rabbitMQ详细教程 2017年12月20日 17:34:47 阅读数:7539 安装Erlang 由于RabbitMQ依赖Erlang, 所以需要先安装Erlang. Er ...

  6. linux下安装配置svn服务器

    linux下安装配置svn服务器 1. svn服务器安装 将subversion-1.4.0.tar.gz和subversion-deps-1.4.0.tar.gz传到服务器. tar xfvz su ...

  7. 详解在Linux中安装配置MySQL

    最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在Linux中安装配置MySQL 安装环境 CentOS7 + MySQL5.7 下载安 ...

  8. Linux 下安装配置 JDK7

    Linux 下安装配置 JDK7 配置环境(debian 7) 自从从Oracle收购Sun近三年来,已经有很多变化.早在8月,甲骨文将“Operating System Distributor Li ...

  9. CentOS6.5下安装配置MySQL

    CentOS6.5下安装配置MySQL,配置方法如下: 安装mysql数据库:# yum install -y mysql-server mysql mysql-deve 查看mysql-server ...

随机推荐

  1. Python Tutorial学习(十一)-- Brief Tour of the Standard Library – Part II

    11.1. Output Formatting 格式化输出 The repr module provides a version of repr() customized for abbreviate ...

  2. pip assert_source_matches_version(self)版本验证报错Source in %s has version %s, which satisfies requirement %s的解决方式

    在win8.1下为了安装flask模块,开始安装pip,结果发生了上篇博客里面的错误ntpath join(path, *paths) 发生UnicodeDecodeError.解决之后继续发现版本验 ...

  3. auto_ptr, which can release the space automatically

    C++的auto_ptr所做的事情,就是动态分配对象以及当对象不再需要时自动执行清理. 使用std::auto_ptr,要#include <memory>.[1]  中文名 自动指针 外 ...

  4. 如何设置路由器实现静态IP配置

    一.概述 嵌入式开发者,经常面对这样的环境:PC(windows)+虚拟机(linux)+开发板.我们希望三者都能相互通信,而且可以联网. 对于实验室只提供一根网线,而自己没有额外的增加端口数量的设备 ...

  5. Hibernate validator验证

    spring-mvc配置 <mvc:annotation-driven validator="validator" /> <bean id="valid ...

  6. TCP三次握手和http过程

    pc浏览服务器网页此过程不包括域名查询,只描述TCP与http数据流的变化.一.pc与http服务器进行三次握手来建立连接.1.pc:seq=0 ack=0 syn=1 ack=0 发送给服务器建立同 ...

  7. iOS7新特性-NSURLSession详解

    前言:本文由DevDiv版主@jas 原创翻译,转载请注明出处!原文:http://www.shinobicontrols.com/b ... day-1-nsurlsession/ 大家都知道,过去 ...

  8. 【itext】7步制作兼容各种文档格式的Itext5页眉页脚 实现page x pf y

    itext5页眉页脚工具类,实现page x of y 完美兼容各种格式大小文档A4/B5/B3,兼容各种文档格式自动计算页脚XY轴坐标 鉴于没人做的这么细致,自己就写了一个itext5页眉页脚工具类 ...

  9. 报表中的Excel操作之Aspose.Cells(Excel模板)

    原文:报表中的Excel操作之Aspose.Cells(Excel模板) 本篇中将简单记录下Aspose.Cells这个强大的Excel操作组件.这个组件的强大之处,就不多说,对于我们的报表总是会有导 ...

  10. Android中关于List与Json转化问题

    比如 List<String>list=new ArrayList<String>(); list.add("test1"); list.add(" ...