PHP 7.x connection with MSSQL server with MAMP - sql-server

I am trying to connect mssql server to PHP 7.0.8 through MAMP. I have tried using freetds. On some blog people are saying to use pdo_dblib.so extension but it's not working.
Please guide me through the process of connection.

For those who still have this problem:
/Applications/MAMP/bin/php/php7.2.1/bin/pecl install sqlsrv pdo_sqlsrv
Edit php.ini:
extension=sqlsrv.so
extension=pdo_sqlsrv.so
If necessary, use brew install autoconf if you don't have it already.

While the answers posted by Vague Space and Pedro Santiago helped, I still think the answers are a bit lacking and incomplete… Or ask you to do too much. Honestly the official Microsoft instructions are overkill when they state you need to install their Docker image of SQL Server and such? C’mon… Most people just need the drivers installed to make a connection.
So here is my answer based on my experience installing the pdo_sqlsrv.so and sqlsrv.so modules in MAMP (version 5.2) but should work for most any MAMP version that supports some flavor of PHP 7.
Adjust the .bash_profile so MAMP’s binaries and libraries are a part of your $PATH settings.
First, adjust your .bash_profile so the MAMP stuff is in there; makes it easier to launch and work with MAMP specific binaries and ensures MAMP libraries are checked when doing things like installing new modules like this.
The way I like to do it is like this; set $MAMP_BIN and $MAMP_PHP variables like this and then rebuild the $PATH variables:
# MAMP stuff.
export MAMP_BIN="/Applications/MAMP/Library/bin";
export MAMP_PHP="/Applications/MAMP/bin/php/php7.2.10/bin";
# Final $PATH setting.
export PATH="/usr/local/bin:/usr/local/sbin:$MAMP_BIN:$MAMP_PHP:$PATH";
Save it and just log out of the Terminal session and back in, or just resource the .bash_profile like this:
source ~/.bash_profile
With that done, let’s install the core Microsoft ODBC binary stuff.
Install the Microsoft ODBC stuff.
Do this to install the core ODBC stuff on macOS; be sure to have Homebrew installed:
brew tap microsoft/SQLSRV-release https://github.com/Microsoft/homebrew-SQLSRV-release
brew update
brew install --no-sandbox msodbcsql17 SQLSRV-tools
Then when that’s done, go ahead and install the Unix ODBC stuff like this:
brew install unixodbc
Now install the actual PHP modules via PECL:
pecl install sqlsrv pdo_sqlsrv
With the modules installed, add them to the php.ini file in MAMP so PHP can recognize it. For PHP 7.2.10 on MAMP 5.x it should be located here:
/Applications/MAMP/bin/php/php7.2.10/conf/php.ini
And just add these config lines to the bottom of the file:
; Enable 'Microsoft Drivers for PHP for SQL Server' extension module
extension = sqlsrv.so
extension = pdo_sqlsrv.so
; Configuration
;sqlsrv.WarningsReturnAsErrors = 1
;sqlsrv.LogSeverity = 0
;sqlsrv.LogSubsystems = 0
;sqlsrv.ClientBufferMaxKBSize = 10240
;pdo_sqlsrv.log_severity = 0
;pdo_sqlsrv.client_buffer_max_kb_size = 10240
Note, most tutorials—and even PECL when you install the modules—simply mention adding extension = sqlsrv.so and extension = pdo_sqlsrv.so to the php.ini config, but these config options are the ones that RedHat has when installing the PHP SQLSRV via the Remi repo. Yeah, most of them are commented out but I still like having it there for reference.

Follow this guide through step 3: Microsoft PHP drivers for SQL Server
Find where pecl drops extensions in your local machine
Copy the files pdo_sqlsrv.so and sqlsrv.so into your MAMP's PHP extension directory. Mine was located at /Applications/MAMP/bin/php/php7x.x/lib/php/extensions/no-debug-foo-bar
Edit your php.ini file to include the new extensions:
extension=sqlsrv.so
extension=pdo_sqlsrv.so
Restart your MAMP servers.

having just done this in 2019 with MAMPPRO4 on windows 10 (follow upto step 4 to test that you are connected and then do point 9 ) point 5 onwards is for changing the path in the command line
download dll files from microsoft
https://www.microsoft.com/en-gb/download/details.aspx?id=20098
follow the instruction after running the exe file and place the dll
files into the extension directory of the php version that you are
using eg: MAMP/bin/php/php7.1.29/ext
check phpinfo for the Loaded Configuration File of the php.ini file
add the 2 dll files depending on your requirements (I wasted time by
using the 64.dll) make sure you are using ts(thread safe) not
nts(none thread safe) in the file name of the dll
extension=php_sqlsrv_71_ts_x86.dll
extension=php_pdo_sqlsrv_71_ts_x86.dll
in control panel search for advanced system settings and click
click Environment Variables
under system variables not user variables click path and click edit
click new and add C:\MAMP\bin\php\php7.1.29 (Edit this to your path)
restart MAMP
open a new command line an enter php -v
you should see the php version displayed

Related

MariaDB version 10.5.9 unable to install

In my current workplace we are using MariaDB version 10.5.9 for our DB's and we are trying to reinstall this version for testing purposes on a separate container. However, seems anything from 10.5.9 below is failing with the follow error;
root#mdb-10-5:~# curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version=mariadb-10.5.9
# [info] Checking for script prerequisites.
# [warning] Found existing file at /etc/apt/sources.list.d/mariadb.list. Moving to /etc/apt/sources.list.d/mariadb.list.old_5
# [error] MariaDB Server version 10.5.9 is not working.
# Please verify that the version is correct.
#
# The latest MariaDB Server versions are:
# 10.10.1 10.3.36 10.4.26 10.5.17 10.6.10 10.7.6 10.8.5 10.9.3
#
# More information on MariaDB releases is available at:
# https://mariadb.com/kb/en/release-notes/
When I try the same command with version 10.5.10, it works and downloads successfully.
I am using the following procedure, one of which is the MariaDB KB:
https://mariadb.com/kb/en/mariadb-package-repository-setup-and-usage/
https://www.dbi-services.com/blog/how-to-install-a-specific-version-of-mariadb/
Both guides use the same repo, and it is also the only thing that I have found specific when I search for information to install this particular version or MariaDB.
Can anyone offer any suggestions or have experienced similar problems?
We (MariaDB corporation) recently moved over our repositories to a content delivery network instead of using our own servers only. Unfortunately the new service does not have a full archive of older releases yet, the oldest 10.5 we have on there for example is 10.5.10.
I have filed an internal bug report / feature request about that already, but it is still pending.
Meanwhile you can "fix" this by first running the repo setup script with a supported version like 10.5.10, and then editing the repository file it created, replacing the version number with 10.5.9, and the host name dlm.mariadb.com with download.mariadb.com.
On Debian and Ubuntu the repository file would be /etc/apt/sources.list.d/mariadb.list, and you'd have to run apt-get update afterwards to pick up the repo change before installing packages.
On RHEL, CentOS, Rocky etc. the file is /etc/yum.repos.d/mariadb.repo and no further action is needed before installing actual packages.

no redis function on phpinfo after install php redis with macPorts

i need help. currently i want to use PHP redis on my macOS from this repo https://github.com/phpredis/phpredis
because there are many error when i direct clone from that repository, i decided to choose install the phpredis use MacPorts.
my specification mac is
macOS Cataline v 10.15.7
PHP 7.3.11
i'm using XAMPP 7.4.12
after i install the macPorts i did run this command
sudo port install php73-redis
the installation was good and no error. after that i restart my apache and also restart my mac.. but when i check on phpinfo() no function redis..
i also check on my file /opt/local/var/db/php73/redis.ini also contain extension=redis.so
what is missing from my steps? i still not able to set the PHPredis after that. please help

Installing Oracle12c and Oracle Forms on the same linux machine?

I have Oracle 12c r1 installed on my Fedora 27 64bit pc and now I want to install Oracle Forms
But the problem is that Oracle Fusion infrastructure needs to be installed on different Oracle_Home and after installing it and when I start Installing Oracle Forms and Oracle reports the installation never finish And get stuck at 98% and when I check the log it looks like that the install program looking for files in the other Oracle_home (the old home)
Where my database is!
Someone told me the the full installation of Oracle Forms includes Oracle Database of the same version so I do not need my old 12c data base installation, is this true?
I've never installed Fusion nor Forms before and I do not know how install them correctly on the same machine as my database, so can anyone help me please ?
Thanks
I'm not the expert in Oracle Forms installation, but I may have some useful information for you.
First of all - what version of Fusion Middleware are you trying to install? It's important because Oracle Forms&Reports is very demanding in matter of OS and much more tricky than Oracle Database. You should install it only on supported ones. It's connected with packages and libraries. If you have too new, you may expect strange problems.
For 12.2.1.3.0 the supported OS's are:
Oracle Linux 6,
Oracle Linux 7,
Red Hat Enterprise Linux 6,
Red Hat Enterprise Linux 7,
SLES 11,
SLES 12.
Fedora 19 is clone of RHEL 7, maybe Fedora 27 is too new? I couldn't find any info about it... DBA in our company told me once: "Never try to install Oracle software on configuration which is not directly supported by Oracle - it's asking for troubles. You should always do as Installation Guide states."
Maybe you should tried installing Fusion Middleware on separate Virtual Machine using one of mentioned OS's? In my opinion it's much more safe to have Oracle Fusion Middleware installed on VM than on bare-metal PC. It's easy to backup, easy to migrate to other server etc. The supported one is Oracle VM, but you should not have problems with VMware (I know that FMW 11 works on VMware, never tried 12).
Someone told me the the full installation of Oracle Forms includes
Oracle Database of the same version so I do not need my old 12c data
base installation, is this true?
According to this Guide - no, it does not. But I know other products that comes with Oracle DB in package (like Oracle Business Intelligence, which consist of Oracle DB, Weblogic and OBI as middleware) - so maybe it's not all true.
New information (2018-04-26):
Ok, I've asked a more experienced DBA and he told me that it is common to use another linux user account to install other oracle software on the same PC. Then you can easily set completely different environments, so you can avoid glitches. For example you can set for them different ORACLE_HOME.
It is not necessary to have multiple user accounts if you isolate the environments. For multiple Oracle product installs on the same server I use shell scripts to set the ENV for each one.
Ensure that your current ENV does not have any Oracle Database references - check .bashrc .bash_profile and run: printenv to verify.
Example: database env script
#!/bin/sh
#
# Defining environment variables for Oracle Database.
#
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export ORACLE_HOME
TNS_ADMIN=$ORACLE_HOME/network/admin
export TNS_ADMIN
JAVA_HOME=$ORACLE_HOME/jdk
export JAVA_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LD_LIBRARY_PATH
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$JAVA_HOME/bin:$PATH
export PATH
Source the env script and start listener and database from shell - database needs to be running for the middleware install
Install Java 8 JDK from oracle.com/technology - I download the tar gzip file and extract to /u01/app/oracle/product/jdk8 {better to use a generic name for the folder jdk8 vs the release number as it is easier to upgrade the jdk}
Set ENV for install:
ORACLE_BASE=/u01/app/oracle
export ORACLE_BASE
JAVA_HOME=/u01/app/oracle/product/jdk8
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
Source ENV for install in shell
Start middleware infrastructure installation from same shell (this part does not require the config to be run)
Create Repository: cd to middleware infrastructure home/oracle_common/bin
Run ./rcu -> Common Infrastructure Services/Oracle Platform Security Services and prefix
Install FMW (same shell as infrastructure)
Run config.sh
Post Install: may require symlink to be created if an error - cd /usr/lib64 - ln -s libXm.so.4 libXm.so.3
Create shell script to set FMW env
#!/bin/sh
#
# 12c Fusion Middleware Environment
#
ORACLE_HOME=/u01/app/oracle/product/m12.2
export ORACLE_HOME
JAVA_HOME=/u01/app/oracle/product/jdk8
export JAVA_HOME
PATH=$ORACLE_HOME/OPatch:$ORACLE_HOME/wlserver/common/bin:$ORACLE_HOME/oracle_common/common/bin
export PATH
Source the FMW ENV script then cd $ORACLE_HOME and start the processes
I have found that using the shell and environment isolation works well.
The FMW/Infrastructure requires Java 8 - I have run into issues in the past trying to use OpenJDK for FMW - using the Oracle Java 8 JDK seems to work better.
These were my notes for an install on Redhat 7 - should work on Fedora but may require some troubleshooting - sometimes libraries are newer than the version FMW requires or are missing. Not sure if you installed the Repository in your attempts - if not that might have been why the install hangs - it is trying to connect to the database and update the repository tables.
Refer to the Installation guides for more information
hope that helps you.

Where does sdkman install packages?

I used sdkman to install groovy which went fine. Where is the installed package now? I need the path for it. I am on Ubuntu 14.04.
I've checked it on my system. It should be located in $HOME/.sdkman/candidates/.
I think the best way would be to use SDKMan's home command:
https://sdkman.io/usage#home
Something like this (taken from the above page):
$ sdk home java 11.0.7.hs-adpt
/home/somedude/.sdkman/candidates/java/11.0.7.hs-adpt
Upon installation, SDKMAN creates an environment variable $SDKMAN_DIR which points to the installation directory.
Usuall it's ~/.sdkman
After you have run source $HOME/.sdkman/bin/sdkman-init.sh.
You can see the sdkman "installation" by running:
declare -f
$HOME on mac is /Users/<users>
Where's SDKMan installed:
echo #SDKMAN_DIR
Where did it just install gradle? (or some other package)
which gradle
SDKMAN stores file in $HOME/.sdkman/candidates/ as Tom mentioned and this answer goes into more detail.
To find where SBT 1.3.13 is installed, type sdk home sbt 1.3.13. It'll return something like /Users/powers/.sdkman/candidates/sbt/1.3.13.
The arguments to the sdk install command align with where the files are stored in $HOME/.sdkman/candidates.
sdk install java 8.0.272.hs-adpt stores files in $HOME/.sdkman/candidates/java/8.0.272.hs-adpt.
sdk install sbt 1.3.13 stores files in $HOME/.sdkman/candidates/sbt/1.3.13.
When you run sdk install, the downloaded binaries get saved in $HOME/.sdkman/archives. For example, $HOME/.sdkman/archives/java-8.0.272.hs-adpt.zip and $HOME/.sdkman/archives/sbt-1.3.13.zip.
Some of the binaries are pretty big and can end up taking a lot of space on your computer. You should periodically delete them with the sdk flush archives command. Once you install the software, you don't need the binaries anymore. See here for more details.

Phpstorm does not see xdebug but it is installed

PhpStorm cannot see xdebug but it is installed. In my browser xdebug works fine. Where is the problem?
The error:
Connection with 'xdebug' was not established. Validate installation.
php.ini
[xdebug]
xdebug.idekey=PHPSTORM
zend_extension="/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.default_enable=1
xdebug.coverage_enable=1
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "/tmp"
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_autostart=1
phpinfo in phpstorm:
PHP version: 5.4.10
Loaded extensions: bcmath, bz2, calendar, Core, ctype, curl, date, dom, ereg, exif, fileinfo, filter, ftp, gd, gettext, hash, iconv, imap, json, ldap, libxml, mbstring, mcrypt, mysql, mysqli, openssl, pcre, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, Phar, posix, Reflection, session, SimpleXML, soap, sockets, SPL, sqlite3, standard, tokenizer, XCache, xml, xmlreader, xmlwriter, xsl, yaz, zip, zlib
First, are you using MAMP (free) or MAMP Pro?
Turns out there is a difference between the php.ini file you edit from MAMP and the php.ini file that PhpStorm uses in the interpreter.
The MAMP Pro php.ini file resides in /Library/Application Support/appsolute/MAMP PRO/conf/php.ini and doesn't have a PHP installation (which PhpStorm needs when setting the interpreter). If you run phpinfo(); this is the file you will see data from.
When you set PhpStorm to the necessary location here /Applications/MAMP/bin/php/php5.4.x/bin it looks at the php.ini file there, not the one that MAMP Pro uses (above). So if you want PhpStorm to see the debugger, you need to add the code to that php.ini file.
For help setting up the interpreter for MAMP and PhpStorm refer to the documentation here
HELPFUL HINT: When checking to see if xdebug is installed make sure to run the --version command in terminal from the MAMP php location. Otherwise you'll end up seeing the default OSX PHP info which wouldn't have xdebug installed by default.
Example: run this in the PhpStorm terminal to see if it works /Applications/Mamp/bin/php/php5.4.4/bin/php --version
MAMP using different php.ini if you run it from terminal, try this code to find the php.ini
php -i | grep php.ini
After that add the code for activate the xDebug
[xdebug]
zend_extension="/Applications/MAMP/bin/php/php5.4.10/lib/php/extensions/no-debug-non-zts-20100525/xdebug.so"
xdebug.remote_enable=true
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.remote_host=localhost
xdebug.profiler_output_dir="/Applications/MAMP/tmp/xdebug"
xdebug.max_nesting_level=1000
If this work, please consider accept the answer for the benefit the others.
This is because Mac OS X has php installed by default. There are two ini files for MAMP PRO.
PhpStorm will run the default php which you do not add the xdebug function to it.
Read this post for the solution
http://devnet.jetbrains.com/message/5466653
Pay attention to the STEP 5
===================================
okay, if it do not work, I thought u may not pay enough attention to the article, It do helpful and explain the reason, read i again ?
I had similar problem.
I did:
Installed xdebug by following the steps here.
Found out which version of PHP does my PHPStorm use.
Created a new entry in the corresponding php.ini file of the /path/to/xdebug/modules/xdebug.so.
and I was able to solve my problem. xdebug is working now.
I had a similar issue in that it worked then it did not.
In my case, the cause turned out to be an miss placed .htaccess file in the root of the project.
The .htaccess file (repeated below) was there from a previous set of testing and was intended to stop XDebug from working. It sure did.
php_value xdebug.remote_autostart 0
php_value xdebug.remote_enable 0
php_value xdebug.profiler_enable 0
I just renamed the file and like magic, all was good.

Resources