मुझे पहले समस्या थी कि मेरे सी अनुप्रयोग जहां/smp/mysql.sock में सॉकेट की तलाश में है लेकिन मेरा सॉकेट स्थान /var/run/mysqld.sock पर सेट किया गया था। सॉकेट को हमेशा/tmp में रखने के लिए अब मैंने my.cnf में सेटिंग्स को बदल दिया है।PHP सेट MySQL सॉकेट स्थान
अब, जब मैं nginx और php5-fpm का उपयोग करके अपना वेब एप्लिकेशन चलाने की कोशिश करता हूं तो उसे सॉकेट नहीं मिलता है क्योंकि यह अभी भी /var/run/mysqld.sock में दिखता है। सबसे पहले मैंने एक लिंक बनाया लेकिन फिर ध्यान दिया, कि जब भी मैं मशीन को पुनरारंभ करता हूं, तो यह लिंक हटा दिया जाता है।
मैं अपने php.ini के माध्यम से खोज की है और सभी तीन (pdo_mysql.default_socket, mysql.default_socket, mysqli.default_socket) उपलब्ध सॉकेट विकल्प /tmp/mysql.sock करने के लिए सेट। मैंने इसे सीजीआई, क्ली और एफपीएम फ़ोल्डर में किया था। हालांकि, यह अभी भी काम नहीं करता है। क्या मुझे एक और विकल्प जोड़ने की ज़रूरत है? या क्या मुझे सामान्य रूप से अपने दृष्टिकोण पर पुनर्विचार करना चाहिए?
यहाँ मेरा php.ini:
[PHP]
engine = On
short_open_tag = On
asp_tags = Off
precision = 14
y2k_compliance = On
output_buffering = 4096
zlib.output_compression = Off
implicit_flush = Off
unserialize_callback_func =
serialize_precision = 100
allow_call_time_pass_reference = Off
s afe_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_DEPRECATED
display_errors = Off
display_startup_errors = Off
log_errors = On
log_errors_max_len = 1024
ignore_repeated_errors = Off
ignore_repeated_source = Off
report_memleaks = On
track_errors = Off
html_errors = Off
variables_order = "GPCS"
request_order = "GP"
register_globals = Off
register_long_arrays = Off
register_argc_argv = Off
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"
doc_root =
user_dir =
enable_dl = Off
file_uploads = On
upload_max_filesize = 2M
max_file_uploads = 20
allow_url_fopen = On
allow_url_include = Off
default_socket_timeout = 60
[Date]
[filter]
[iconv]
[intl]
[sqlite]
[sqlite3]
[Pcre]
[Pdo]
[Pdo_mysql]
pdo_mysql.cache_size = 2000
pdo_mysql.default_socket=/tmp/mysql.sock
[Phar]
[Syslog]
define_syslog_variables = Off
[mail function]
SMTP = localhost
smtp_port = 25
mail.add_x_header = On
[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
[Interbase]
ibase.allow_persistent = 1
ibase.max_persistent = -1
ibase.max_links = -1
ibase.timestampformat = "%Y-%m-%d %H:%M:%S"
ibase.dateformat = "%Y-%m-%d"
ibase.timeformat = "%H:%M:%S"
[MySQL]
mysql.allow_local_infile = On
mysql.allow_persistent = On
mysql.cache_size = 2000
mysql.max_persistent = -1
mysql.max_links = -1
mysql.default_port =
mysql.default_socket=/tmp/mysql.sock
mysql.default_host=
mysql.default_user =
mysql.default_password =
mysql.connect_timeout = 60
mysql.trace_mode = Off
[MySQLi]
mysqli.max_persistent = -1
mysqli.allow_persistent = On
mysqli.max_links = -1
mysqli.cache_size = 2000
mysqli.default_port = 3306
mysqli.default_socket =/tmp/mysql.sock
mysqli.default_host =
mysqli.default_user =
mysqli.default_pw =
mysqli.reconnect = Off
[mysqlnd]
mysqlnd.collect_statistics = On
mysqlnd.collect_memory_statistics = Off
[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-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]
[Session]
session.save_handler = files
session.use_cookies = 1
session.use_only_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 = 1000
session.gc_maxlifetime = 1440
session.bug_compat_42 = Off
session.bug_compat_warn = Off
session.referer_check =
session.entropy_length = 0
session.cache_limiter = nocache
session.cache_expire = 180
session.use_trans_sid = 0
session.hash_function = 0
session.hash_bits_per_character = 5
url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
[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]
[gd]
[exif]
[Tidy]
tidy.clean_output = Off
[soap]
soap.wsdl_cache_enabled=1
soap.wsdl_cache_dir="/tmp"
soap.wsdl_cache_ttl=86400
soap.wsdl_cache_limit = 5
[sysvshm]
[ldap]
ldap.max_links = -1
[mcrypt]
[dba]
इसके अलावा, यहाँ है nginx error.log:
$db = new PDO('mysql:host=localhost;dbname=mydb', $dbUser, $dbPass);
:
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)' in /var/www/php_includes/sfunctions.php:250
यहाँ कैसे मैं वर्तमान में PHP में पीडीओ के माध्यम से डाटाबेस का उपयोग है
टिप्पणियों के बिना अपने php.ini पोस्ट करें। इसमें आपके php.ini के साथ कुछ करना होगा या जिस तरह से आप अपने कोड में अपना डेटाबेस कनेक्शन संभालेंगे। –
मैंने अपनी पोस्ट संपादित की और php5/fpm/php.ini को आधार के रूप में उपयोग किया। मुझे यह भी पता नहीं है कि मुझे हर तीनों को हर समय संपादित करना है या नहीं। वास्तव में कोई मतलब नहीं होगा, है ना? –