zoukankan      html  css  js  c++  java
  • 在Ubuntu下安装Apache、PHP、MySQL

    1、sudo apt-get install apache2 libapache2-mod-php5 php5 php5-gd mysql-server php5-mysql phpmyadmin
    在下载来自动安装配置的时候会出现一个框子让你输入密码哦!!记住是密码

    2、启用 mod_rewrite 模块

    sudo a2enmod rewrite
    3、配置 网站的目录了

    sudo gedit /etc/apache2/sites-available/default

    ------------------默认情况下你会看到
    NameVirtualHost *
    <VirtualHost *>
        ServerAdmin webmaster@localhost
       
        DocumentRoot /var/www/
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /var/www/>

    ------------------我们把它改到别处去~~也就是自定义位置
    NameVirtualHost *
    <VirtualHost *>
        ServerAdmin webmaster@localhost
       
        DocumentRoot /home/felix/www/
        <Directory />
            Options FollowSymLinks
            AllowOverride None
        </Directory>
        <Directory /home/felix/www/>
    ------------------看到了把?这个就是放在了home下你的用户名的www文件夹里面

    4、重启服务器

              sudo /etc/init.d/apache2 restart

    =======================================================================

    以下文章为转载:

    安装MySQL

    sudo apt-get install mysql-server

    这个应该很简单了,而且我觉得大家在安装方面也没什么太大问题,所以也就不多说了,下面我们来讲讲配置。

    配置MySQL

    注意,在Ubuntu下MySQL缺省是只允许本地访问的,如果你要其他机器也能够访问的话,那么需要改变/etc/mysql/my.cnf配置文件了!下面我们一步步地来:

    默认的MySQL安装之后根用户是没有密码的,所以首先用根用户进入:

    $mysql -u root

    在这里之所以用-u root是因为我现在是 一般用户(firehare),如果不加-u root的话,mysql会以为是firehare在登录。注意,我在这里没有进入根用户模式,因为没必要。一般来说,对mysql中的数据库进行操作,根本没必要进入根用户模式,只有在设置时才有这种可能。

    进入mysql之后,最要紧的就是要设置Mysql中的root用户密码了,否则,Mysql服务无安全可言了。

    mysql&gt; GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY "123456";

    注意,我这儿用的是123456做为root用户的密码,但是该密码是不安全的,请大家最好使用大小写字母与数字混合的密码,且不少于8位。

    这样的话,就设置好了MySQL中的root用户密码了,然后就用root用户建立你所需要的数据库。我这里就以xoops为例:

    mysql&gt;CREATE DATABASE xoops;

    mysql&gt;GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@localhost IDENTIFIED BY "654321";

    这样就建立了一个xoops_roots的用户,它对数据库xoops有着全部权限。以后就用xoops_root来对xoops数据库进行管理,而无需要再用root用户了,而该用户的权限也只被限定在xoops数据库中。

    如果你想进行远程访问或控制,那么你要做两件事:

    其一:

    mysql&gt;GRANT ALL PRIVILEGES ON xoops.* TO xoops_root@"%" IDENTIFIED BY "654321";

    允许xoops_root用户可以从任意机器上登入MySQL。

    其二:

    $sudo gedit /etc/mysql/my.cnf

    老的版本中

    &gt;skip-networking =&gt; # skip-networking

    新的版本中

    &gt;bind-address=127.0.0.1 =&gt; bind-address= 你机器的IP

    这样就可以允许其他机器访问MySQL了。

    1、安装Apache2

    命令:

    sudo apt-get install apache2


    2、编辑/etc/apache2/apache2.conf文件,在改动之前,请先将该配置文件做个备份。以便在出错的时候可以恢复。
    &gt;AddDefaultCharset ISO-8859-1 =&gt;AddDefaultCharset GB2312
    这样的话,我们就不会每次打开网页都是乱码了!
    3、增加安全模块,以保障Apache服务的正常运行,现在我们安装mod-security。
    a)首先安装libapache2-mod-security包

    命令:

    sudo apt-get install libapache2-mod-security



    b)该模块默认是没激活的,我们可以在/etc/apache2/mods-available目录下看到有mod-security.load文件,但在/etc/apache2/mods-enabled目录却没有它的软链接。我们现在激活它:
    $sudo ln -s /etc/apache2/mods-available/mod-security.load /etc/apache2/mods-enabled/mod-security.load
    $sudo cp /usr/share/doc/libapache2-mod-security/examples/httpd2.conf.example-full /etc/apache2/mods-available/mod-security.conf
    $sudo cp /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-available/mod-security.conf.orig
    $sudo vi /etc/apache2/mods-available/mod-security.conf
    &gt;# 检测内容长度以避免堆溢出攻击
    &gt;SecFilterForceByteRange 32 254 =&gt;SecFilterForceByteRange 32 126

    &gt;# debug设置
    &gt;SecFilterDebugLevel 9 =&gt;SecFilterDebugLevel 0

    &gt;# 设置缺省的动作
    &gt;SecFilterDefaultAction "deny,log,status:499" =&gt;SecFilterDefaultAction "deny,log,status:404"

    &gt;# 把设置传递给子目录
    &gt;SecFilterInheritance Off

    &gt;# Redirect user on filter match
    &gt;# 当匹配sh的时候,重新定向到一个特殊的警告页面,该页面是自行编写的,写些警告的话让攻击者知难而退,该段先不要生效,等到相关配置配好之后再失效不迟。记住在配好之后要使之生效。
    &gt;#SecFilter sh redirect:http://localhost/hack/warning.htm

    &gt;# Prevent OS specific keywords
    &gt;#过滤一些敏感的东西,我们使用*是为了攻击者使用/etc/./passwd来绕开检测
    &gt;SecFilter /etc/passwd =&gt;SecFilter /etc/*passwd
    &gt;SecFilter /bin/*sh

    &gt;# Very crude filters to prevent SQL injection attacks
    &gt;# 防止SQL插入(SQL Injection)攻击
    &gt;SecFilter "delete[[:space:]]+from"
    &gt;SecFilter "insert[[:space:]]+into"
    &gt;SecFilter "select.+from"
    &gt;SecFilter "select[[:space:]]+from"
    &gt;SecFilter "union[[:space:]]+from"

    命令:

    sudo ln -s /etc/apache2/mods-available/mod-security.conf /etc/apache2/mods-enabled/mod-security.conf



    c)重启Apache2服务即可。

    命令:

    sudo /etc/init.d/apache2 restart



    第三步可能会引起部分网站不能正常运行,可以参照着去掉某些限制,由于是安全模块,所以参照的是防火墙的做法,关掉一切不安全的,再根据需要打开必要的。

    安装PHP支持

    $sudo apt-get install libapache2-mod-php5
    $sudo apt-get install php5
    如果想支持图形就加php5-gd,如果想支持Mysql就加php5-mysql,这里之所以要单独列出libapache2-mod-php5,主要是由于php5的依赖关系没有做好,有可能会安装上libapache-mod-php5的包,所以为了避免不必要的麻烦,干脆还是单独指定比较好。

    3、修改PHP配置文件,以限制内存和文件最大上传尺寸

    我们编辑/etc/php5/apache2/php.ini文件,先做一般配置,在改动之前,请先将该配置文件做个备份。以便在出错的时候可以恢复。
    &gt;memory_limit = 8M =&gt;修改成你所需的内存大小
    &gt;upload_max_filesize = 2M =&gt;修改文件最大上传尺寸
    =============
    &gt;extension=mysql.so 支持Mysql服务
    &gt;extension=gd.so 支持gd函数
    =============
    其实在Ubuntu下,如果你安装了php5-mysql和php5-gd之后,会自动修改以上二行的,我们做的只不过是确认一下它们前面的注释符是否去掉。

    bobyang 写道:

    补充:
    1。目前大多数php的open source都是用php4写的,为了兼容以前的php版本,有时需要将register_long_arrays打开,否则$HTTP_GET_VARS和$HTTP_POST_VARS等变量将无法使用,会出现一些莫名其妙的问题。
    2。另外,在装完php5后最好确认一下/etc/apache2/mods-enabled/下是否有链接:
    php5.load -&gt; /etc/apache2/mods-available/php5.load



    4、加固PHP,以增强安全性。注意,下面的安全性要因情况而定,所以我已经把它们的功能写清楚了,如果有问题的话,看看是否由于下面哪种限制条件所造成,可相应将其注释掉。

    下面我们开始加固php,我们再次编辑/etc/php5/apache2/php.ini文件,之所以没有一次改完,主要是为了给大家一个清晰的思路。
    &gt;#打开安全模式,打开他的好处就是PHP文件只能访问所有者和PHP文件所有着一样的文件,即使在chroot环境下也无法访问jail中属主不一样的文件,类似于php shell这样的后门就没用武之地了哦,phpshell是很流行的php后门,他可以执行系统命令,就象他的名字一样,和 shell很接近。
    &gt;safe_mode = On

    &gt;#下面的设置就限制了fopen(), file()等函数可以操作的目录范围,避免了入侵者非法读取文件,一定要在/var/www后面加 "/",否则/var/wwww下的文件也能被访问 。该选项会禁止任何不在/var/www/目录下的PHP文件运行,包括任何以软链接方式链到 /var/www/目录下的程序,如PhpMyAdmin包,就在该选项设定后无法正常运行。
    &gt;open_basedir = /var/www/

    &gt;#禁止使用phpinfo和get_cfg_var函数,这样可以避免泄露服务信息,一般在在确认PHP能正常工作之后再使之关闭
    &gt;disable_functions = phpinfo,get_cfg_var

    &gt;#设置php程序错误日志
    &gt;error_reporting = E_ALL
    &gt;log_errors = On
    &gt;error_log = /var/log/php_err.log

    &gt;#如果php程序没有指明需要register_globals的话,最好把register_globals设置为Off,这样可以避免很多安全问题的。注意,如果你的程序是需要register_globals的话,可千万别关。Ubuntu默认是关闭的。
    &gt;register_globals = Off

    &gt;#禁止打开远程地址,记得最近出的php include的那个漏洞吗?就是在一个php程序中include了变量,那么入侵者就可以利用这个控制服务器在本地执行远程的一个php程序,例如phpshell,所以我们关闭这个。
    &gt;allow_url_fopen = Off

    5、OK,打完收功!

     

    _______________________________________________________________________________________________________

    一、安装apache2+php5+mysql
    sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server

    二、设置mysql密码
    mysqladmin -u root password 新密码

    三、安装phpmyadmin
    sudo apt-get install phpmyadmin


    测试:http://localhost/phpmyadmin/

    四、其它操作:
    编辑测试页:()
    sudo gedit /var/www/testphp.php

    启动Apache
    $ sudo /usr/sbin/apache2ctl start
    停止Apache
    $ sudo /usr/sbin/apache2ctl stop
    重启Apache
    $ sudo /etc/init.d/apache2 restart

    如果只是用于本地开发,加强安全性,设置如下:
    $ gksudo "gedit /etc/apache2/ports.conf"
    $ password:
    更改ports.conf
    Listen 127.0.0.1:80
    保存文件之后,并重启apache。这时,只有通过127.0.0.1才能访问Apache。

    我想说的:我还是喜欢把包包下载下来自己配置环境,难是难了点,而且费时间,但网上资料很多,不会有解决不了的问题的。Ubuntu这点做得有些傻瓜,我不喜欢。apache2昨天自己下了个tar.gz的包,自己装上,配置完测试成功,今天在新立得软件包管理器里安装上面那些东西(偷懒一下),呜呜,自己装的apache2就不能用了,还要去改,哎,懒得改了都。我对计算机有洁癖,用不到的东西就想删掉捏。哎,去删喽。

    因为工作需要,想看看WordPress中Html编辑器是如何实现的,以及它在服务器端是如何进行安全操作的,如过滤html中的javascript关键字等,所以手把手地在我虚拟机中的Ubuntu7.04上过了把安装瘾。
    首先,我使用新利德软件管理工具,安装了Apache2.2.3、MySQL5.0.38、libapache2-mod-php5及php5-cgi(两者应该装前者就够了),置于这两个的安装就不用我说了吧,哈哈,按照新利德软件管理工具安装软件的正常步骤就行了。

    装完后,需要给MySQL数据库的 root 用户设置密码(默认是空)

    mysqladmin -u root password [newpassword]

    然后使用 root 用户登陆进去,创建一个新的数据库,并新增加一个用户拥有这个数据库操作的所有权,所以指令如下:

    mysql -u root -p [yourpassword]
    >create database wordpressdb;
    >grant all privileges on wordpressdb.* to [newusername] identified by “321456″ with grant options;
    >exit;

    至此,数据库已经准备好了,接下来就是下载 WordPress2.2 (最新版)了,然后将其解压到Apache的Web目录(Apache默认安装后,会在/var/目录下新建一个www/目录,将WordPress整个目录复制到www目录下就可以了,这里需要管理员权限),然后在浏览器中敲入 http://localhost/wordpress ,页面提示没有找到 wp-config.php 文件,跟到里面一看,原来他只有一个 wp-config-simple.php 的模板,另外,还有一个readme.html的文件,你可以先看看这个文件,然后就知道怎么回事了,于是我将 wp-config-simple.php 相应的地方(其实一般只要改三个地方,数据库名、访问数据库的用户名及该用户名的密码),另存为 wp-config.php 文件。

    刷新前面的页面,这个时候提示了一个这样的问题:Your PHP installation appears to be missing the MySQL which is required for WordPress.,开始我以为是WordPress找不着数据了,一个劲地修改数据库,访问数据库,看是否是我的数据回名或是用户名写错了,不过好像都不是,后来问同事,原来是 PHP 少了一个与 MySQL 进行通信的模板,哎,没办法,英文太次了!

    于是只好又Google了一下,终于在一个外文网站上找到了这个模板的名称:libapache2-mod-auth-mysql php5-mysql

    于是打开终端,敲入如何命令行(下面的命令行中顺带安装了phpmyadmin用于管理mysql,其它我更喜欢mysql query browser来操作MySQL数据库):

    sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

    等待安装完后,继续如下操作:
    sudo gedit /etc/php5/apache2/php.ini

    找到这一行“;extension=mysql.so”,将前面的分号去掉,表示Apache启动的时候,加载与MYSQL连接的模块,然后保存。

    最后就是重启Apache服务器:
    sudo /etc/init.d/apache2 restart

    Linux学习网收集整理 ,转贴请标明原始链接。

  • 相关阅读:
    ActiveSync合作关系对话框的配置
    WINCE对象存储区(object store)
    Wince 隐藏TASKBAR的方法
    Wince输入法换肤换语言机制
    poj 3080 Blue Jeans 解题报告
    codeforces A. Vasily the Bear and Triangle 解题报告
    hdu 1050 Moving Tables 解题报告
    hdu 1113 Word Amalgamation 解题报告
    codeforces A. IQ Test 解题报告
    poj 1007 DNA Sorting 解题报告
  • 原文地址:https://www.cnblogs.com/buffer/p/1646557.html
Copyright © 2011-2022 走看看