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. Java学习笔记——Linux下安装配置MySQL

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

  2. Linux 下安装配置 JDK7

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

  3. CentOS6.5下安装配置MySQL

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

  4. linux 下安装配置jboss as7以及部署应用

    linux 下安装配置jboss as7以及部署应用 1.测试平台及软件 centos 5.4 jdk-7u5-linux-i586.rpm jboss-as-7.1.1.Final.zip jbos ...

  5. Linux下安装配置Node及memcached

    这篇主要是记录Linux下安装Node及memcached遇到的问题及安装配置过程,方便日后查阅 Node安装及配置 [root@hostname ~]tar zxvf node-v0.12.4.ta ...

  6. [Linux] linux下安装配置 zookeeper/redis/solr/tomcat/IK分词器 详细实例.

    今天 不知自己装的centos 出现了什么问题, 一直卡在 启动界面, 找了半天没找见原因(最后时刻还是发现原因, 只因自己手欠一怒之下将centos删除了, 而且选择的是在本地磁盘也删除. ..让我 ...

  7. Ubuntu Linux上安装配置Mysql

    一.安装: 三种安装方式: 1. 从网上安装 sudo apt-get install mysql-server.装完已经自动配置好环境变量,可以直接使用mysql的命令. 注:建议将/etc/apt ...

  8. 一步到位Linux中安装配置MySQL及补坑

    Windows上安装MySQL也就不讲了,基本上一路点击下一步就可完成,现在讲讲Linux上布署Mysql,虽然也有很多网友列出了详细的步骤,可能是因为版本过老的问题导致即使按照上面一步步来也还是出现 ...

  9. LAMP_01_Win下安装配置MySql

    1.解压Mysql server到D盘配置环境变量MYSQL_HOME      D:\J2EE\apache-ant-1.9.7PATH            %MYSQL_HOME%\bin; 2 ...

随机推荐

  1. Gradle Goodness: Rename Ant Task Names When Importing Ant Build File

    Migrating from Ant to Gradle is very easy with the importBuild method from AntBuilder. We only have ...

  2. BZOJ 4198 荷马史诗

    哈夫曼树. 如果要最大的深度最小,再按h排序即可. #include<iostream> #include<cstdio> #include<cstring> #i ...

  3. 【Qt】Qt之自定义界面(添加自定义标题栏)【转】

    简述 通过上节内容,我们实现了自定义窗体的移动,但是我们缺少一个标题栏来显示窗体的图标.标题,以及控制窗体最小化.最大化.关闭的按钮. 自定义标题栏后,所有的控件我们都可以定制,比如:在标题栏中添加换 ...

  4. 在一个长度为n的数组里的所有数字都在0到n-1的范围内。 数组中某些数字是重复的,但不知道有几个数字是重复的。也不知道每个数字重复几次。请找出数组中任意一个重复的数字。 例如,如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出是重复的数字2或者3

    // test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...

  5. Django学习随想(1)

    关于Django的模型部分: 模型操作实际上都是针对数据库的一系列操作. Django封装了底层的操作,给用户提供了一组非常python化的模型对象.让python开发者可以很方便.直观地进行数据库表 ...

  6. html-----016---HTTP 状态消息

    HTTP 状态消息 当浏览器从 web 服务器请求服务时,可能会发生错误. 从而有可能会返回下面的一系列状态消息: 1xx: 信息 消息: 描述: 100 Continue 服务器仅接收到部分请求,但 ...

  7. leetcode contest 20

    Q1: 520. Detect Capital Given a word, you need to judge whether the usage of capitals in it is right ...

  8. 基于docker的 Hyperledger Fabric 多机环境搭建(下)

    Docker环境部署见上一篇博客:http://www.cnblogs.com/cnblogs-wangzhipeng/p/6994541.html. 我们部署分布式容器服务后就要在上面部署Fabri ...

  9. 用js来实现那些数据结构10(集合02-集合的操作)

    前一篇文章我们一起实现了自定义的set集合类.那么这一篇我们来给set类增加一些操作方法.那么在开始之前,还是有必要解释一下集合的操作有哪些.便于我们更快速的理解代码. 1.并集:对于给定的两个集合, ...

  10. UOJ22 UR #1外星人(动态规划)

    https://www.cnblogs.com/Gloid/p/10629779.html 这一场的D. #include<bits/stdc++.h> using namespace s ...