このページでは、FreeBSD上のapacheで、PHP5環境を構築する方法について説明します。
php5はデフォルトでシステムにインストールされていませんので、別途システムにインストールする必要があります。
インストールはportsを利用して行います。
portsの取得および展開方法については、「最新のportsを取得して展開する」を参照してください。
portsの展開が完了した後、下記手順でphp5をmakeし、インストールします。
$ cd /usr/ports/lang/php5 $ make config-recursive $ make install clean
尚、「make config-recursive」の際、設定メニューが表示されるので、デフォルトでチェックされているものに加え、必要なものをチェックしてください。
最低限の設定として、「APACHE」および「MULTIBYTE」を設定しておけば問題ないと思います。
(前者は、apacheのDSOであるmod_php5.soを構築する設定で、後者はPHP5でUTF-8をはじめとするマルチバイト文字列を扱えるようにする設定です。)
続いて、「php5-extensions」を同じくportsからインストールします。
$ cd /usr/ports/lang/php5-extensions $ make config-recursive $ make install clean
「make config-recursive」の際、設定メニューが表示されるので、デフォルトでチェックされているものに加え、必要なものをチェックしてください。
最低限必要なのは「MBSTRING」(php5のMULTIBYTEと同じく、UTF-8をはじめとするマルチバイト文字列を扱えるようにする設定)ぐらいですが、必要に応じて「GD」等のグラフィックライブラリや、PHP5と組み合わせて利用するデータベースの指定を行ってください。(私の環境ではPHP5にPostgreSQLを組み合わせて利用するため、「PGSQL」を指定しています。)
また、php5-extensionsの依存関係で、「php5-sqlite」がインストールされますが、この設定メニューも表示されます。
この際には「UTF8」にチェックを入れて、OKを選択してください。
次に、php5の設定ファイルである「php.ini」を編集して設定します。
標準では、「php.ini」は「/usr/local/etc/」に保存されていますので、こちらを編集して設定してください。
[PHP] engine = On zend.ze1_compatibility_mode = Off short_open_tag = On asp_tags = Off precision = 12 y2k_compliance = On output_buffering = Off zlib.output_compression = Off implicit_flush = Off unserialize_callback_func= serialize_precision = 100 allow_call_time_pass_reference = On safe_mode = Off safe_mode_gid = Off safe_mode_include_dir = safe_mode_exec_dir = safe_mode_allowed_env_vars = PHP_ safe_mode_protected_env_vars = LD_LIBRARY_PATH disable_functions = disable_classes = expose_php = On max_execution_time = 30 max_input_time = 60 memory_limit = 128M error_reporting = E_ALL & ~E_NOTICE display_errors = On display_startup_errors = Off log_errors = Off log_errors_max_len = 1024 ignore_repeated_errors = Off ignore_repeated_source = Off report_memleaks = On track_errors = Off variables_order = "EGPCS" register_globals = Off register_long_arrays = On register_argc_argv = On auto_globals_jit = On post_max_size = 8M magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off auto_prepend_file = auto_append_file = default_mimetype = "text/html" default_charset = "UTF-8" doc_root = user_dir = enable_dl = On file_uploads = On upload_max_filesize = 2M allow_url_fopen = On allow_url_include = Off default_socket_timeout = 60 [Date] [filter] [iconv] [sqlite] [xmlrpc] [Pcre] [Syslog] define_syslog_variables = Off [mail function] SMTP = localhost smtp_port = 25 [SQL] sql.safe_mode = Off [ODBC] odbc.allow_persistent = On odbc.check_persistent = On odbc.max_persistent = -1 odbc.max_links = -1 odbc.defaultlrl = 4096 odbc.defaultbinmode = 1 [MySQL] mysql.allow_persistent = On mysql.max_persistent = -1 mysql.max_links = -1 mysql.default_port = mysql.default_socket = mysql.default_host = mysql.default_user = mysql.default_password = mysql.connect_timeout = 60 mysql.trace_mode = Off [MySQLi] mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mSQL] msql.allow_persistent = On msql.max_persistent = -1 msql.max_links = -1 [OCI8] [PostgresSQL] pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.max_persistent = -1 pgsql.max_links = -1 pgsql.ignore_notice = 0 pgsql.log_notice = 0 [Sybase] sybase.allow_persistent = On sybase.max_persistent = -1 sybase.max_links = -1 sybase.min_error_severity = 10 sybase.min_message_severity = 10 sybase.compatability_mode = Off [Sybase-CT] sybct.allow_persistent = On sybct.max_persistent = -1 sybct.max_links = -1 sybct.min_server_severity = 10 sybct.min_client_severity = 10 [bcmath] bcmath.scale = 0 [browscap] [Informix] ifx.default_host = ifx.default_user = ifx.default_password = ifx.allow_persistent = On ifx.max_persistent = -1 ifx.max_links = -1 ifx.textasvarchar = 0 ifx.byteasvarchar = 0 ifx.charasvarchar = 0 ifx.blobinfile = 0 ifx.nullformat = 0 [Session] session.save_handler = files session.use_cookies = 1 session.name = PHPSESSID session.auto_start = 0 session.cookie_lifetime = 0 session.cookie_path = / session.cookie_domain = session.cookie_httponly = session.serialize_handler = php session.gc_probability = 1 session.gc_divisor = 100 session.gc_maxlifetime = 1440 session.bug_compat_42 = 1 session.bug_compat_warn = 1 session.referer_check = session.entropy_length = 0 session.entropy_file = session.cache_limiter = nocache session.cache_expire = 180 session.use_trans_sid = 0 session.hash_function = 0 session.hash_bits_per_character = 4 url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=" [MSSQL] mssql.allow_persistent = On mssql.max_persistent = -1 mssql.max_links = -1 mssql.min_error_severity = 10 mssql.min_message_severity = 10 mssql.compatability_mode = Off mssql.secure_connection = Off [Assertion] [COM] [mbstring] mbstring.language = Japanese mbstring.internal_encoding = "UTF-8" mbstring.http_input = auto mbstring.http_output = "UTF-8" mbstring.encoding_translation = Off mbstring.substitute_character = none; [FrontBase] [gd] [exif] [Tidy] tidy.clean_output = Off [soap] soap.wsdl_cache_enabled=1 soap.wsdl_cache_dir="/tmp" soap.wsdl_cache_ttl=86400
ちょっと長いですが、デフォルトの設定から変更されているものは、マルチバイト系の設定の部分がほとんどです。
頑張って編集してみてください。
なお、「magic_quotes_gpc」は、PHPスクリプト内で利用可能な「$_GET」「$_POST」「$_COOKIE」について、特殊な文字をエスケープして返すか否かの設定です。
「On」に設定すると、「'」や「"」、末尾が「0x5c」のコードの文字などをエスケープします。
PHP5ではデフォルトで「On」ですが、上記の理由から「Off」に設定することをオススメします。
ほとんどの場合、PHP5はapache経由で実行されると思いますので、PHP5をapache側から利用できるよう設定を行います。
以下の記述が「httpd.conf」に含まれているか確認し、含まれていない場合には追記を行ってください。
LoadModule php5_module libexec/apache/libphp5.so AddModule mod_php5.c AddType application/x-httpd-php .php
また、必須ではありませんが、UserAgentがディレクトリまでのURLを指定してきた場合、任意のPHP5のスクリプトを返却したい場合には、下記の通りDirectoryIndexの指定中に、PHPスクリプトを指定してください。
(DirectoryIndexで指定したファイルが複数存在する場合には、先に指定したファイルのほうが先に参照されますので、自分の用途にあわせて適宜指定してください。)
DirectoryIndex index.php index.pl index.cgi index.html
以上で設定は完了です。
設定が完了したら、apachectlを利用してapacheを再起動させるか、システムを再起動させるかして設定を反映させてください。
apachectlの利用方法については、「コマンドラインからapacheを起動/停止/再起動する」を参照してください。
・頂いたメッセージは管理者のチェックの後、公開されます。
・メッセージの公開を希望されない場合には、「このメッセージを非公開にする」にチェックを入れてください。
・管理者が不適切と判断したメッセージは公開しませんので、予めご了承ください。
まだ評価がありません |
表示できるメッセージはありません。