CentOS7 yum lamp 虚拟主机配置 lamp各组件简单影响性能的参数调整--for 一定的环境需求

LAMP Server on CentOS 7

Updated Tuesday, January 13, 2015 by Joel Kruger

This guide provides step-by-step instructions for installing a full-featured LAMP stack on a CentOS 7 system.

In this guide, you will be instructed on setting up Apache, MariaDB, and PHP.

The CentOS 7 Project has elected to replace the init service management daemon with the newer, systemd daemon for this latest release. In addition, this release of CentOS ships with MariaDB repositories instead of MySQL. If you would prefer to use the more traditional MySQL instead, there are instructions provided below to use those repositories as well.

Throughout this guide we will offer several suggested values for specific configuration settings. Some of these values will be set by default. These settings are shown in the guide as a reference, in the event that you change these settings to suit your needs and then need to change them back.

Prerequisites

Your Linode should already be set up according to the instructions in our Getting Started guide, and it is suggested that security precautions be implemented. For assistance with this, please see our documentation: Securing Your Server

This guide is written for a non-root user. Commands that require elevated privileges are prefixed with sudo. If you’re not familiar with the sudo command, you can check our Users and Groups guide.

Set the Hostname

Before you begin installing and configuring the components described in this guide, please make sure you’ve followed our instructions for setting your hostname. Issue the following commands to make sure it is set properly:

1
2
hostname
hostname -f

The first command should show your short hostname, and the second should show your fully qualified domain name (FQDN).

Install and Configure the Apache Web Server

The Apache Web Server is a very popular choice for serving web pages. While many alternatives have appeared in the last few years, Apache remains a powerful option that we recommend for most uses.

  1. Update existing packages:

    1
    sudo yum update
    
  2. Install the current version of the Apache web server (in the 2.x series):
    1
    sudo yum install httpd
    
  3. The configuration for Apache is contained in the httpd.conf file, which is located at: /etc/httpd/conf/httpd.conf. We advise you to make a backup of this file into your home directory:
    1
    cp /etc/httpd/conf/httpd.conf ~/httpd.conf.backup
    

    By default, all files ending in the .conf extension in /etc/httpd and /etc/httpd/conf.d/ are treated as Apache configuration files, and we recommend placing your non-standard configuration options in files in these directories. Regardless how you choose to organize your configuration files, making regular backups of known working states is highly recommended.

  4. Edit the main Apache configuration file to adjust the resource use settings. The settings shown below are a good starting point for a Linode 1GB.
    /etc/httpd/conf/httpd.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    KeepAlive Off
    
    ...
    
    <IfModule prefork.c>
    StartServers 2
    MinSpareServers 6
    MaxSpareServers 12
    MaxClients 80
    MaxRequestsPerChild 3000
    </IfModule>
    

Configure Name-based Virtual Hosts

There are different ways to set up virtual hosts; however, we recommend the method below. This configuration instructs Apache to listen on all IP addresses available to it.

  1. Create virtual host entries for each site that we need to host with this server. For this example we are using “example.com” and “example.org”.

    /etc/httpd/conf.d/vhost.conf

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    NameVirtualHost *:80
    
    <VirtualHost *:80>
        ServerAdmin [email protected]example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /srv/www/example.com/public_html/
        ErrorLog /srv/www/example.com/logs/error.log
        CustomLog /srv/www/example.com/logs/access.log combined
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin [email protected]example.org
        ServerName example.org
        ServerAlias www.example.org
        DocumentRoot /srv/www/example.org/public_html/
        ErrorLog /srv/www/example.org/logs/error.log
        CustomLog /srv/www/example.org/logs/access.log combined
    </VirtualHost>
    

    Notes regarding this example configuration:

    • All of the files for the sites that you host will be located in directories that exist underneath /srv/www. You can symbolically link these directories into other locations if you need them to exist elsewhere.
    • ErrorLog and CustomLog entries are suggested for more fine-grained logging, but are not required. If they are defined (as shown above), the logs directories must be created before you restart Apache.
  2. Before you can use the above configuration you’ll need to create the specified directories. For the above configuration, you can do this by issuing the following commands:
    1
    2
    3
    4
    5
    sudo mkdir -p /srv/www/example.com/public_html
    sudo mkdir /srv/www/example.com/logs
    
    sudo mkdir -p /srv/www/example.org/public_html
    sudo mkdir /srv/www/example.org/logs
    
  3. After you’ve set up your virtual hosts, you can issue the following commands to enable Apache to start on boot and run for the first time:
    1
    2
    sudo /bin/systemctl enable httpd.service
    sudo /bin/systemctl start httpd.service
    

Assuming that you have configured the DNS for your domain to point to your Linode’s IP address, virtual hosting for your domain should now work. Remember that you can create as many virtual hosts as you require.

Any time you change an option in your vhost.conf file, or any other Apache configuration file, remember to reload the configuration with the following command:

1
sudo /bin/systemctl reload httpd.service

Install and Configure MariaDB Database Server

MariaDB is a relational database management system (RDBMS) and ships by default in CentOS 7. MariaDB is a popular component in contemporary web development tool-chains, and is used to store data for many popular applications, including Wordpress and Drupal.

If you prefer to use the MySQL branded database in CentOS 7, you will need to add the required repositories by issuing the following command:

1
sudo yum install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

Install MariaDB

  1. Install the MariaDB-server package:

    1
    sudo yum install mariadb-server
    
  2. CentOS 7 provides version 10.1.1 of MariaDB. Before you can use MariaDB some configuration is required. If you want to run MariaDB by default when the system boots, execute the following command:
    1
    sudo /bin/systemctl enable mariadb.service
    
  3. Now you can start the MariaDB daemon (mariadb) with the following command:
    1
    sudo /bin/systemctl start mariadb.service
    
  4. At this point, MariaDB should be ready to configure and run. While you shouldn’t need to change the configuration file, note that it is located at /etc/my.cnf for future reference. The default values should be fine for a Linode 1GB, but if you decide to adjust them you should first make a backup copy:
    1
    cp /etc/my.cnf ~/my.cnf.backup
    

Configure MariaDB and Set Up MariaDB databases

  1. After installing MariaDB, it’s recommended that you run mysql_secure_installation, a program that helps secure MariaDB. While running mysql_secure_installation, you will be presented with the opportunity to change the MariaDB root password, remove anonymous user accounts, disable root logins outside of localhost, and remove test databases and reload privileges. It is recommended that you answer yes to these options. Run the following command to execute the program:

    1
    mysql_secure_installation
    
  2. Next, we’ll create a database and grant your users permissions to use databases. First, log in to MariaDB:
    1
    mysql -u root -p
    

    Enter MariaDB’s root password, and you’ll be presented with a prompt where you can issue SQL statements to interact with the database.

    In the example below, example_database_name is the name of the database, example_user is used as the username, and example_password is used as the password for the root account on this newly established database. You should replace all three of these parameters to reflect your unique circumstances. It is recommended to create both a root and one additional user account within your database.

  3. To create a new database and grant your users permissions on it, issue the following commands. Note that the semi-colons (;) at the end of the lines are crucial for ending the commands:
    1
    2
    create database example_database_name;
    grant all on example_database_name.* to ‘example_user‘@‘localhost‘ identified by ‘example_password‘;
    
  4. Database user names and passwords are only used by scripts connecting to the database, and that database user account names need not (and perhaps should not) represent actual user accounts on the system. If you need to create additional users in the database you just created, simply run the command below, substituting the new user name and password where appropriate:
    1
    grant all on example_database_name.* to ‘example_user2‘@‘localhost‘ identified by ‘example_password2‘;
    
  5. With that completed, you’ve successfully configured MariaDB. To exit the MariaDB database administration utility issue the following command:
    1
    quit
    

With Apache and MariaDB installed you are now ready to move on to installing PHP to provide scripting support for your web pages.

Installing and Configuring PHP

PHP makes it possible to produce dynamic and interactive pages using your own scripts and web development frameworks. Furthermore, many popular web applications like WordPress are written in PHP. If you want to be able to develop your websites using PHP, you must first install it.

  1. CentOS includes packages for installing PHP from the terminal. Issue the following command:

    1
    sudo yum install php php-pear
    
  2. Once PHP5 is installed we’ll need to tune the configuration file located in /etc/php.ini to enable more descriptive errors, logging, and better performance. These modifications provide a good starting point if you’re unfamiliar with PHP configuration. Make sure that the following values are set, and relevant lines are uncommented (comments are lines beginning with a semi-colon [;]):
    /etc/php.ini

    1
    2
    3
    4
    5
    6
    7
    error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR
    display_errors = Off
    log_errors = On
    error_log = /var/log/php/error.log
    max_execution_time = 30
    memory_limit = 128M
    max_input_time = 30
    

  3. Create the log directory for PHP and give the Apache user ownership:
    1
    2
    sudo mkdir /var/log/php
    sudo chown apache /var/log/php
    
  4. If you need support for MariaDB or MySQL in PHP, then install the php5-mysql package with the following command:
    1
    sudo yum install php-mysql
    
  5. After making changes to PHP, restart Apache by issuing the following command:
    1
    sudo /bin/systemctl reload httpd
    

You should now have a fully functioning LAMP stack on your Linode! From here, you can serve up tons of content to your followers on the internet. If you are interested in setting up a WordPress site on your new LAMP stack, please consider reviewing this tutorial: Manage Web Content with WordPress.

More Information

You may wish to consult the following resources for additional information on this topic. While these are provided in the hope that they will be useful, please note that we cannot vouch for the accuracy or timeliness of externally hosted materials.

时间: 2024-09-30 11:14:12

CentOS7 yum lamp 虚拟主机配置 lamp各组件简单影响性能的参数调整--for 一定的环境需求的相关文章

LAMP虚拟主机配置以及控制目录访问

3.基于域名的虚拟主机配置 NameVirtualHost192.168.3.32:80#apache2.2.xx版本需要开启此选项,而且要和下面的保持一致:2.4.x版本就不需要此项设置了 <Virtualhost192.168.3.32:80> ServerName www.80.com DocumentRoot /var/www/html/80 </Virtualhost> <Virtualhost192.168.3.32:80> ServerName www.8

lamp centos虚拟主机配置

1.基于不同端口的虚拟主机配置 [[email protected]~]# vi /etc/httpd/conf/httpd.conf Listen 80      #设置监听不同的虚拟主机需要使用的端口 Listen 8080 Listen 8088 <Virtualhost*:80>                      #三个不同端口的主机 ServerName www.80.com DocumentRoot /var/www/html/80 </Virtualhost>

基于fastcgi分离和LAMP虚拟主机部署wordpress和DiscuzX

背景 虚拟主机   如今服务器的配置提升明显,单一主机上部署单一网站会对主机造成大量的性能损失,因此web服务虚拟主机的技术应运而生.所谓虚拟主机指的是在一台机器上运行多个网站(如company1.example.com和company2.example.com)的做法 .虚拟主机可以是" 基于IP的 ",这意味着每个网站都有不同的IP地址,或者" 基于名称 ",这意味着每个IP地址上都有多个名称,或者"基于端口",这意味着在同一ip的不同端口上

Ngnix 安装、信号量、虚拟主机配置

一.Ngnix安装 ngnix的安装很简单 1.先从ngnix官网下载ngnix压缩包 wget http://nginx.org/download/nginx-1.6.2.tar.gz 2.解压并进入其目录 tar -zxf nginx-1.6.2.tar.gz cd nginx-1.6.2 3.编译安装 ./configure --prefix=/usr/local/ngnix #此处有可能报错,Ngnix依赖于pcre库,所以要先安装pcre库 yum install pcre pcre-

CentOS 7运维管理笔记(6)----Apache 基于端口的虚拟主机配置

如果一台服务器只有一个IP或需要通过不同的端口访问不同的虚拟主机,可以使用基于端口的虚拟主机配置. (1) 在虚拟机的CentOS7服务器上配置 eth0:4 为192.168.1.214: (2) 配置 /etc/hosts文件以方便测试: 进行ping测试,看ip地址有没有导通: (3) 建立虚拟主机存放网页的根目录,并建立首页文件 index.html (4) 修改 /usr/local/apache2/conf/httpd.conf 文件,在文件末尾添加以下内容: Listen 192.

构建Nginx服务器之一 安装及虚拟主机配置

一.Nginx简介     Nginx("engine x") 是一个高性能的HTTP和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名. 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括Yandex.

linux下apache https 虚拟主机配置

如果单纯只想在传输数据时加密传输,那么ssl证书是不需要认证的,但是浏览器打开时会有警告信息.假设我们做的不是一个公众产品那么也还好啦. 如下是今天学习时的一个笔记,其实我用的是真实环境. 环境:CentOS 64, 32bit:Apache 2.2.15: 1.检查apache是否安装了mod_ssl.so模块. 检查方法是查看是否在modules(/etc/httpd/modules/)下存在.不存在那么安装(yum -y install mod_ssl). 2.生成证书和密钥 1)生成密钥

Nginx虚拟主机配置实践(一)

Nginx虚拟主机配置实践(一) 一.虚拟主机的概念 在Web服务里虚拟主机就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可以独立的对外提供服务供用户访问. 二.虚拟主机的类型 基于域名的虚拟主机 基于端口的虚拟主机 基于IP的虚拟主机 说明:实际生产中用的最多的就是基于域名的虚拟主机,其他两种了解即可. 三.基于一个域名虚拟主机的配置 Nginx主配置文件结构 创建一个最简化的Nginx主配置文件 [[email protected] conf

Apache虚拟主机配置详解

1.配置环境说明 系统环境:CentOS7 Apache环境:编译安装的httpd-2.4.7 系统限制:关闭了防火墙和selinux hosts文件中配置以下域名解析 192.168.115.150    www.web1.com 192.168.115.150    www.web2.com 2.Apache虚拟主机简介 虚拟主机是指在一个机器上运行多个网站(例如:www.web1.com和www.web2.com).每个站点希望用不同的域名和站点目录,或者是不同端口.不同的IP就需要虚拟主