1. まとめトップ

【Linux】驚くほど簡単にサーバー構築

サーバーが欲しくても、設定が複雑なため、本来みな苦戦するLinuxサーバーの構築手順や注意点を細かく解説、紹介していきます。

更新日: 2018年08月11日

1 お気に入り 4807 view
お気に入り追加

この記事は私がまとめました

自分でもVPS等でサーバー構築する機会が増えてきました。

moepapaさん

Linux(リナックス)とは

Linux(リナックス)は、UnixライクなOSカーネルであるLinuxカーネル、およびそれをカーネルとして周辺を整備したシステム。
Linuxは、狭義ではLinuxカーネル、広義ではそれをカーネルとして用いたシステムを指す、Unix系(Unixライク、Unix like)オペレーティングシステムである。カタカナでは「リナックス」と表記されることが多いが、別の表記もある。

Linuxは、スーパーコンピュータ・メインフレーム・サーバ・パーソナルコンピュータ・組み込みシステム(携帯電話やテレビなど)など、幅広い種類のハードウェアと共に使用している。
スマートフォンやタブレット端末用プラットフォームAndroidはLinuxカーネルの上に構築されている。

Linuxの開発は、フリーかつオープンソースなソフトウェアの共同開発として最も傑出した例のひとつである。Linuxカーネルのソースコードは無償で入手でき、GNU一般公衆利用許諾書のもとにおいて、非営利・営利に関わらず誰でも自由に使用・修正・頒布できる。

Linuxは、世界中の開発者の知識を取り入れるという方法によって、あらゆる方面に利用できる幅広い機能と柔軟性を獲得し、数多くのユーザの協力によって問題を修正していくことで高い信頼性を獲得した。
デスクトップやサーバ用のLinuxは、Linuxディストリビューションという形でパッケージ化されて配布されている。

有名なLinuxディストリビューションとしては、Debian(とその派生であるUbuntu、Linux Mint)、Red Hat Linux(とその派生であるFedora、Red Hat Enterprise Linux、CentOS)、Mandriva Linux/Mageia、openSUSE、Arch Linuxなどがある。各Linuxディストリビューションは、Linuxカーネル、システムソフトウェア、ライブラリ等、巨大なコンパイル済のアプリケーション群を含んでいる。

インストール

まずは、デスクトップ、サーバー、仮想環境等にLinuxをインストール。
レンタルサーバー等で、すでにOSはインストール済みで提供される場合はこれは不要です。

セットアップ作業

以下、半角文字はすべてコマンドラインでの入力内容です。
改行はエンターでの実行です。

基本アプリインストール

yum -y install httpd expect svn git
yum -y install php php-mbstring php-mysql php-devel php-gd php-pdo php-pear php-xml php-imap

pear config-set preferred_state alpha
pear channel-update pear.php.net

pear install --onlyreqdeps Auth HTTP_Client HTTP_Request Log Mail_Mime Mail_mimeDecode Net_Socket Net_URL Net_UserAgent_Mobile Pager XML_Feed_Parser XML_Util HTTP_OAuth HTTP_Request2 Net_URL2 Validate Services_JSON

pear config-set preferred_state stable

必要システムの起動

chkconfig sshd on
chkconfig httpd on
chkconfig ip6tables off

Apache設定

設定ファイルhttpd.confを編集して開発サーバー用にします

※まずはデフォルト設定をバックアップ
cp -pr /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_org

※設定ファイルを編集
vi /etc/httpd/conf/httpd.conf

----
~
<Directory "/var/www/html">
Options FollowSymLinks Indexes ExecCGI
~
KeepAlive On
MaxKeepAliveRequests 20
KeepAliveTimeout 1
~
<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 50
ServerLimit 50
MaxClients 50
MaxMemFree 1024
MaxRequestsPerChild 1000
</IfModule>
----
それぞれの設定箇所を上記のように書き換えておく(無い場合追記)

設定変更後はサービス再起動

service httpd restart

MySQL導入

インストール作業

yum -y install mysql-server
chkconfig mysqld on

チューニング(数値はサーバー機のスペック次第)

vi /etc/my.cnf
-----------------------------------------------------
# メモリの8割近く振ってもいい
innodb_buffer_pool_size = 3072M
innodb_log_file_size=128M
interactive_timeout = 28800
wait_timeout = 28800
read_buffer_size=1M
read_rnd_buffer_size=1M
sort_buffer_size=1M
skip-name-resolve
-----------------------------------------------------

設定後、適宜rootパスワードの設定や一般ユーザーの作成(*は任意で)

mysql -u root
mysql> SET PASSWORD FOR root@localhost = PASSWORD('**********(何かrootパスワードを決めて入れておく)');
mysql> SET GLOBAL innodb_fast_shutdown=0;
mysql> CREATE USER '****'@'localhost' IDENTIFIED BY '****';
mysql> GRANT ALL PRIVILEGES ON *.* TO '****'@'localhost';
mysql> exit

service mysqld stop
rm -f /var/lib/mysql/ib_logfile*
service mysqld start

1